练习一(升级版)

mac2022-06-30  26

#include<stdio.h> #include<time.h> #include<stdlib.h> void main() { int c,d,e,f; int x,right=0,wrong=0; float a,a1,a2,a3; int flag=0; char cc; srand((unsigned int)time(NULL)); do{ flag=0; x=rand()%4; c=rand()%10+1; d=rand()%10+1; e=rand()%10+1; f=rand()%10+1; if(c<=d&&e<=f&&d!=0&&f!=0) { a1=(float)c/d; a2=(float)e/f; switch(x) { case 0: printf("(%d/%d) + (%d/%d) = ",c,d,e,f); break; case 1: printf("(%d/%d) - (%d/%d) = ",c,d,e,f); break; case 2: printf("(%d/%d) * (%d/%d) = ",c,d,e,f); break; case 3: printf("(%d/%d) ÷ (%d/%d) = ",c,d,e,f); break; } scanf("%f",&a); switch(x) { case 0: if(a1+a2==a) { printf("计算正确!\n");right++; } else { a3=a1+a2; printf("计算错误!答案应为:%f\n",a3);wrong++; } break; case 1: if(a==a1-a2) { printf("计算正确!\n");right++; } else { a3=a1-a2; printf("计算错误!答案应为:%f\n",a3);wrong++; } break; case 2: if(a==a1*a2) { printf("计算正确!\n");right++; } else { a3=a1*a2; printf("计算错误!答案应为:%f\n",a3);wrong++; } break; case 3: if(a==a1/a2) { printf("计算正确!\n");right++; } else { a3=a1/a2; printf("计算错误!答案应为:%f\n",a3);wrong++; } break; } printf("按任意键继续,q则退出!\n"); // scanf("%d",&quit); // if(quit==0) cc=getchar(); printf("\n"); } }while(cc!='q'); printf("共答对%d道题,共答错%d道题\n",right,wrong); }    在练习1的基础上,添加真分数,判断是否为真分数,前提是分子不大于分母切分母不为0。 一开始运行的时候,输入正确答案,可是判断的答案是显示错误的。找到输入答案的那一行代码,发现输入格式是错的,应为%f。 在原基础上修改花了半个小时。 

转载于:https://www.cnblogs.com/ZeJuan/p/4385031.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)