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 }