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("\n-------------------歡迎使用: 四則運算 -------------------\n"); 10 printf("注釋:隨即打印10道四則運算題目(除法結果要求精確到小數兩位)\n"); 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("正確!\n"); 24 score=score+10; 25 } 26 else printf("錯誤!正確答案是%d\n",(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("正確!\n"); 35 score=score+10; 36 } 37 else printf("錯誤!正確答案是%d\n",(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("正確!\n"); 45 score=score+10; 46 } 47 else printf("錯誤!正確答案是%d\n",(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("正確!\n"); 56 score=score+10; 57 } 58 else printf("錯誤!正確答案是%.2f\n",d1/d2); 59 break; 60 } 61 } 62 printf("答題結束.分數為%d\n",score); 63 }