#include
#include
main()
{
int i,n;
float c,da,m,a,b;
for(i=1;i<=10;i++)
{
tc1:a=rand()%10;
tc2:b=rand()%10;
if(b==0) goto tc2;
c=a/b;
n=(int)c;
if(c==n) goto tc1;
printf("%1.0f/%1.0f=",a,b);
scanf("%f",&da);
m=c-da;
if(m>=-0.01 && m<=0.01) printf("正确\n");
else printf("错误\n");
}
}
只是一个除法 一个想法 你考虑一下 有可能的话我会把程序发上去
#include
#include
#include
#include
#define EPS 1e-6 /*用于控制商的精确度*/
main()
{
int xz,a,b,i,da,c,n;
float p;
char zl='y';
srand(time(0));
n=0;
while(zl=='y'||zl=='Y')
{
printf(" 菜单 \n");
printf("1.10加法题\n");
printf("2.10减法题\n");
printf("3.10乘法题\n");
printf("4.10除法题\n");
printf("5.退出\n");
printf("请选择相应的选项\n");
scanf("%d",&xz);
n=0;
switch(xz)
{
case 1:
for(i=1;i<=10;i++)
{
a=rand()%10;
b=rand()%10;
c=a+b;
printf("%d. %d+%d=\n",i,a,b);
scanf("%d",&da);
if(c==da) {printf("回答正确\n"); n+=1;}
else printf("回答错误\n");
}
break;
case 2:
for(i=1;i<=10;i++)
{
do{
a=rand()%10;
b=rand()%10;
c=a-b;}
while(c<0);
printf("%d. %d-%d=\n",i,a,b);
scanf("%d",&da);
if(c==da) {printf("回答正确\n"); n+=1;}
else printf("回答错误\n");}
break;
case 3:
for(i=1;i<=10;i++)
{
a=rand()%10;
b=rand()%10;
c=a*b;
printf("%d. %d*%d=\n",i,a,b);
scanf("%d",&da);
if(c==da) {printf("回答正确\n"); n+=1;}
else printf("回答错误\n");
}
break;
case 4:
printf("结果精确到小数点后6位\n");
for(i=1;i<=10;i++)
{
flag:
a=rand()%10;
b=rand()%10;
if(b==0)
goto flag;
printf("%d. %d÷%d=\n",i,a,b);
scanf("%f",&p);
if(fabs(p-(float)a/b)<=EPS) {printf("回答正确\n"); n+=1;}
else printf("回答错误\n");
}
break;
case 5:
printf("Good Bye!\n");
exit(0);
break;
default:
printf("无效指令\n");
exit(0);
break;
}
fflush(stdin);
printf("答对%d题\n",n);
printf("再来一次?(Y/N)\n");
scanf("%c",&zl);
system("cls");
}
}
what's mean?
case 4:
for(i=1;i<=10;i++)
{
b=rand()%10+1;
a=rand()%10*b;
c=a/b;
printf("%d. %d÷%d=\n",i,a,b);
scanf("%d",&da);
if(c==da) {printf("回答正确\n"); n+=1;}
else printf("回答错误\n");}
break;