1 #include<stdio.h> 2 #include<time.h> 3 #include<math.h> 4 main() 5 { 6 int input,op,i,score=0; 7 float d1,d2,inputf; 8 srand((unsigned)time(NULL)); 9 printf(" -------------------欢迎使用: 四则运算 ------------------- "); 10 printf("注释:随即打印10道四则运算题目(除法结果要求精确到小数两位) "); 11 for(i=0;i<10;i++) 12 { 13 op=rand()%4; 14 d1=rand()%50; 15 d2=rand()%50; 16 switch(op) 17 { 18 case 0: 19 printf("%d+%d=", (int)d1, (int)d2); 20 scanf("%d",&input);getchar(); 21 if(input==((int)d1+(int)d2)) 22 { 23 printf("正确! "); 24 score=score+10; 25 } 26 else printf("错误!正确答案是%d ",(int)d1+(int)d2); 27 break; 28 case 1: 29 while((int)d1<(int)d2)d2=rand()%50;//处理出现负数的情况 30 printf("%d-%d=",(int)d1,(int)d2); 31 scanf("%d",&input);getchar(); 32 if(input==((int)d1-(int)d2)) 33 { 34 printf("正确! "); 35 score=score+10; 36 } 37 else printf("错误!正确答案是%d ",(int)d1-(int)d2); 38 break; 39 case 2: 40 printf("%d*%d=",(int)d1,(int)d2); 41 scanf("%d",&input);getchar(); 42 if(input==((int)d1*(int)d2)) 43 { 44 printf("正确! "); 45 score=score+10; 46 } 47 else printf("错误!正确答案是%d ",(int)d1*(int)d2); 48 break; 49 case 3: 50 while((int)d2==0)d2=rand()%50;//处理分母为零的情况 51 printf("%d/%d=",(int)d1,(int)d2); 52 scanf("%f",&inputf);getchar(); 53 if(fabs(inputf-d1/d2)<=(1e-2)) 54 { 55 printf("正确! "); 56 score=score+10; 57 } 58 else printf("错误!正确答案是%.2f ",d1/d2); 59 break; 60 } 61 } 62 printf("答题结束.分数为%d ",score); 63 }