第一阶 正常循环随机输出三十个式子
#include<stdio.h>
#include<stdlib.h>
char x[4]={'+','-','*','/'};
int main()
{
int a,b,c;
srand((unsigned)time(NULL));
for(int i=0;i<30;i++)
{
printf("%d.",i+1);
a = rand()%100;
printf("%d",a);
b = rand()%4;
printf("%c",x[b]);
c = rand()%100;
printf("%d
",c);
}
}
第二阶 在第一阶的基础上添加查重功能
#include<stdio.h>
#include<stdlib.h>
char x[4]={'+','-','*','/'};
int aa[30];
int bb[30];
int cc[30];
int main()
{
int t=1;
srand((unsigned)time(NULL));
for(int i=0;i<30;i++)
{
aa[i] = rand()%100;
bb[i] = rand()%4;
cc[i] = rand()%100;
for(int j=0;j<i;j++)
{
if(aa[i]==aa[j]&&bb[i]==bb[j]&&cc[i]==cc[j])
{
i--;
t=0;
}
}
if(t) printf("%d.%d%c%d
",i+1,aa[i],x[bb[i]],cc[i]);
else t=1;
}
}
第三阶 在第二阶的基础上添加判断是否有括号、是否有乘除等功能
#include<stdio.h>
#include<stdlib.h>
char x[4]={'+','-','*','/'};
int a[10][1000];
int b[9];
int main()
{
int t=1,same=0;
int coc,f,y,n,w=2,cz,kh,fw=100;
srand((unsigned)time(NULL));
printf("number? ");
scanf("%d",&n);
printf("Have '*'and'/'?(1 or 0) ");
scanf("%d",&coc);
if(coc) w=4;
printf("cao zuo ge shu ");
scanf("%d",&cz);
printf("kuo hao ");
scanf("%d",&kh);
printf("fan wei ");
scanf("%d",&fw);
for(int i=0;i<n;i++)
{
for(int k=0;k<cz;k++)
{
a[k][i] = rand()%fw;
}
for(int k=0;k<cz-1;k++)
{
b[k] = rand()%w;
}
for(int j=0;j<i;j++)
{
for(int k=0;k<cz;k++)
{
if(a[k][j]==a[k][i]) same++;
}
if(same==cz*2-1)
{
i--;
t=0;
}
}
if(t)
{
printf("%d.",i+1);
int n=0,m ;
for(int k=0;k<cz-1;k++)
{
if(!n&&k<cz-2) m=rand()%2;
if(m) {printf("(");n=1;}
printf("%d",a[k][i]);
if(!m&&n) {printf(")");n=0;}
m=0;
printf("%c",x[b[k]]);
}
printf("%d
",a[cz-1][i]);
}
else t=1;
}
}