1.编写程序 c6-3-1.c,实现的功能是:小学生 100 以内整数加减乘除运算训练。程序随机产
生两个 100 以内的正整数 a 和 b 和一个运算符(+、-、、),小学生计算并输入结果。
要求如下:
① 程序应该显示运算式子,并给出小学生运算是否正确的判断信息;
② 可以进行多轮运算,一轮中包括多道题(例如10道题);每出一题,学生回答运算结果,
程序给出对错判别;每轮运算完成后程序给出答题的总结果,并询问是否进行下一轮的
训练,以决定是否继续;
③ 要保证减法运算时不出现负数,除法运算时被除数能整除除数;
④ 操作界面友好。
/*c6-3-1.c*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int a,b,c,d,e,g,h;
char f[]={'+','-','*','/'};
srand((unsigned)time(NULL));
h=1;
while(h==1)
{
int i=1;
while(i==1)
{
a=rand()%100;
b=rand()%100;
e=sizeof(f)/sizeof(f[0]);
srand((unsigned)time(NULL));
for(d=0;d<1;d++)
{
c=rand()%4;
}
if(f[c]=='-'||f[c]=='/')
{
if(a-b<0||a%b!=0)
i=1;
else
i=2;
}
else
i=2;
}
printf("%d\t",a);
printf("%c\t",f[c]);
printf("%d\n",b);
printf("请计算%d%c%d的答案\n",a,f[c],b);
printf("请输入你的答案:");
scanf("%d",&g);
if(f[c]=='+')
{
if(g==a+b)
printf("答案正确\n");
else
printf("答案错误\n");
}
else
if(f[c]=='-')
{
if(g==a-b)
printf("答案正确\n");
else
printf("答案错误\n");
}
else
if(f[c]=='*')
{
if(g==a*b)
printf("答案正确\n");
else
printf("答案错误\n");
}
else
if(f[c]=='/')
{
if(g==a/b)
printf("答案正确\n");
else
printf("答案错误\n");
}
printf("请问还要继续吗?继续(1)结束(2)");
scanf("%d",&h);
}
return 0;
有点难,而且好像我这个有点问题,就是给出数据的时候有点慢,我也希望大佬解决一下我的问题,但是起码在功能的实现上是没问题的。
/c6-3-1.c/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int a, b, answer, correct, o, t, n, R = 0, F = 0;
float k;
for (;;)
{
srand(time(NULL));
a = rand() % 100 + 1;
b = rand() % 100 + 1;
o = rand() % 4;
if (o == 0)
{
printf("%d+%d=", a, b);
correct = a + b;
}
if (o == 1)
{
if (a < b) { t = b; b = a; a = t; }
printf("%d-%d=", a, b);
correct = a - b;
}
if (o == 2)
{
printf("%d*%d=", a, b);
correct = a * b;
}
if (o == 3)
{
if (a < b) { t = b; b = a; a = t; }
if (a % b == 0)
{
printf("%d/%d=", a, b);
correct = a / b;
}
if (a % b != 0) continue;
}
scanf("%d", &answer);
if (answer == correct)
{
printf("你答对了!!!\n");
printf("是否还要继续(1继续,2退出)");
scanf("%d", &n);
R++;
if (n == 1) continue;
else break;
}
if (answer != correct)
{
printf("你答错了!!!\n");
printf("是否还要继续(1继续,2退出)");
scanf("%d", &n);
F++;
if (n == 1) continue;
else break;
}
}
printf("你答对了%d题\n", R);
printf("你答错了%d题\n", F);
k = (float)R / (R + F);
printf("正确率为%f",k);
if (k < 0.6) printf("不合格");
else if (k >= 0.6 && k < 0.8) printf("合格");
else if (k >= 0.8) printf("优秀");
return 0;
}