|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Echo_晨星 于 2021-4-24 21:58 编辑
我们老师年纪比较大,这个代码的写法可能比较老。。。将就看吧,我学的就是这样滴
是要写一个可以循环的给小学生训练四则运算的
第一个代码可以运行,但第二个一运行就弹出:Press any key to continue
两个代码主要是首个for循环有点不一样,第二个是我第一遍写的,当时想用k做一个中介(虽说好像画蛇添足了,现在改成dowhile了),但就是不明白为什么第二个有什么不对。
顺便还有一个问题,就是这个除法不好搞,case 4:比如我写的这个,1/2=0是对的,而不是0.5,我也试着改浮点型啥的,反正各种改,就是不对,再如1/3=1.333333这种改成浮点型也不能让小学生算到后六位吧
我学校才开c半个学期,尽量用基础的,
在此先多谢指教!
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
void main()
{
int a,b,c,d,n,x=0,k;
float rate;
srand((unsigned)time(NULL));
for(rate=0;rate-0.75<0;)
{
for(n=0;n<10;n++)
{
a=rand()%10+1;
b=rand()%10+1;
d=rand()%4+1;
switch(d)
{
case 1:
printf("%d+%d=?\n请输入你的答案:",a,b);
scanf("%d",&c);
if(c==a+b)
{
printf("正确\n");
x++;
}
else
printf("错了\n");break;
case 2:
printf("%d-%d=?\n请输入你的答案:",a,b);
scanf("%d",&c);
if(c==a-b)
{
printf("正确\n");
x++;
}
else
printf("错了\n");break;
case 3:
printf("%d*%d=?\n请输入你的答案:",a,b);
scanf("%d",&c);
if(c==a*b)
{
printf("正确\n");
x++;
}
else
printf("错了\n");break;
case 4:
printf("%d/%d=?\n请输入你的答案:",a,b);
scanf("%d",&c);
if(c==a/b)
{
printf("正确\n");
x++;
}
else
printf("错了\n");break;
}
}
printf("************\n你的总分为:%d\n\n你的正确率为:%.2f%%\n",x*10,(float)x/n*100);
rate=(float)x/n;
if(rate-0.75<0) printf("************请再试一次吧************\n");
}
} 
*******************************************************************************************************************
#include<stdio.h>
#include<stdlib.h>
#include <time.h>
void main()
{
int a,b,c,d,n,x=0,k;
float rate;
srand((unsigned)time(NULL));
for(k=0;k=0;)
{
for(n=0;n<10;n++)
{
a=rand()%10+1;
b=rand()%10+1;
d=rand()%4+1;
switch(d)
{
case 1:
printf("%d+%d=?\n请输入你的答案:",a,b);
scanf("%d",&c);
if(c==a+b)
{
printf("正确\n");
x++;
}
else
printf("错了\n");break;
case 2:
printf("%d-%d=?\n请输入你的答案:",a,b);
scanf("%d",&c);
if(c==a-b)
{
printf("正确\n");
x++;
}
else
printf("错了\n");break;
case 3:
printf("%d*%d=?\n请输入你的答案:",a,b);
scanf("%d",&c);
if(c==a*b)
{
printf("正确\n");
x++;
}
else
printf("错了\n");break;
case 4:
printf("%d/%d=?\n请输入你的答案:",a,b);
scanf("%d",&c);
if(c==a/b)
{
printf("正确\n");
x++;
}
else
printf("错了\n");break;
}
}
printf("************\n你的总分为:%d\n\n你的正确率为:%.2f%%\n",x*10,(float)x/n*100);
rate=(float)x/n;
if(rate-0.75>0)
{
k=1;
printf("************请再试一次吧************\n");
}
}
}
|
|