201306114357-实验3-C语言
#include<stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int a,b,c,n,u,i,sum;
int resultTrue=0;
int answer;
int time;
char op,op2;
do//产生随机数
{
a=rand()%100+1;
b=rand()%100+1;
c=rand()%100+1;
n=rand()%4+1;
u=rand()%4+1;
switch(n)
{
case 1://含有一个运算符
{
switch(u%4)//产生运算符
{
case 0:
{
op='+';
break;
}
case 1:
{
op='-';
break;
}
case 2:
{
op='*';
break;
}
case 3:
{
op='/';
break;
}
}
printf("%d%c%d=\n",a,op,b);//打印
switch(op)//通过运算符计算答案
{
case '+':
{
resultTrue=a+b;
break;
}
case '-':
{
resultTrue=a-b;
break;
}
case '*':
{
resultTrue=a*b;
break;
}
case '/':
{
resultTrue=a/b;
break;
}
}
while(time<121)
{
printf("请输入正确答案(时间为两分钟):");
scanf("%d",&answer);
if(time==120)
{
printf("时间到,无法答题\n");
time=0;
break;
}
if(time<120)
{
if(answer==resultTrue)
{
printf("答案正确\n");
break;
}
else
{
printf("答案错误\n");
break;
}
}
}
}
case 2://产生两个运算符
{
switch(u%4)//第一个运算符产生
{
case 0:
{
op='+';
break;
}
case 1:
{
op='-';
break;
}
case 2:
{
op='*';
break;
}
case 3:
{
op='/';
break;
}
}
switch(u%4)//第二运算符产生
{
case 0:
{
op2='+';
break;
}
case 1:
{
op2='-';
break;
}
case 2:
{
op2='*';
break;
}
case 3:
{
op2='/';
break;
}
}
printf("%d%c%d%c%d=\n",a,op,b,op,c);//打印
switch(op)//计算答案先通过第一个运算符计算
{
case '+':
{
sum=a+b;
break;
}
case '-':
{
sum=a-b;
break;
}
case '*':
{
sum=a*b;
break;
}
case '/':
{
sum=a/b;
break;
}
}
switch(op2)//然后再根据第二运算符计算
{
case '+':
{
sum=sum+c;
break;
}
case '-':
{
sum=sum-c;
break;
}
case '*':
{
sum=sum*c;
break;
}
case '/':
{
sum=sum/c;
break;
}
}
while(time<123)//时间设置
{
printf("请输入正确答案(时间为两分钟):");
scanf("%d",&answer);
if(time==120)
{
printf("时间到,无法答题\n");
time=0;
break;
}
if(time<120)
{
if(answer==sum)
{
printf("答案正确\n");
break;
}
else
{
printf("答案错误\n");
break;
}
}
}
}
}
}while(1);
}