#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void main()
{
int a,b,c,d,s;
int x1=0,x2=0;
printf("--------欢迎来挑战四则运算------\n");
while(1)
{
srand(time(NULL));
d=a=rand()%100;
b=(rand()%a+a)%100;
if(a%4==1&&a<b)
{
c=a,a=b,b=c;
}
if(b==0&&a%4==3)
{
b=rand()%10+1;
}
if(a%4==3&&a%b!=0)
{
srand(time(0));
a=b*(rand()%a);
}
switch(d%4)
{
case 0:printf("%d + %d = ",a,b);
scanf("%d",&c);
if(c==a+b)
{
printf("正确\n");
x1++;
}
else {
printf("错误\n");
x2++;
}break;
case 1:printf("%d - %d = ",a,b);
scanf("%d",&c);
if(c==a-b)
{
printf("正确\n");
x1++;
}
else {
printf("错误\n");
x2++;
}break;
case 2:printf("%d × %d = ",a,b);
scanf("%d",&c);
if(c==a*b)
{
printf("正确\n");
x1++;
}
else {
printf("错误\n");
x2++;
}break;
case 3:printf("%d ÷ %d = ",a,b);
scanf("%d",&c);
if(c==a/b)
{
printf("正确\n");
x1++;
}
else {
printf("错误\n");
x2++;
}break;
}
printf("继续挑战请按确认键,按0退出挑战!\n");
fflush(stdin);
if(getchar()=='0')break;
}
s=x1*10;
printf("你答对了%d道题,答错%d道题\n",x1,x2);
if(s==0)
{
printf("很遗憾你的了零分,请好好努力哦!\n",s);
}
else{
printf("恭喜你得了%d分\n",s);
}
![]()
看了老师发的那个升级版的要求,就尝试做了一下,要求算分数的已经能做出来了,可是真分数的那个要求想了很久还是实现不了,这算是个半成品吧。
我做的是一次性只能生成一道运算题,还有待修改,或则可以做一个一次性生成多道运算题的程序。