第二次课加减乘除运算
第一阶 正常循环随机输出三十个式子
#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\n",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\n",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\n",a[cz-1][i]); } else t=1; } }