#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上百实例源码以及开源项目