#include<stdio.h>
#include <stdlib.h>
#include <time.h>
int time2();
main()
{
int a,b,c,n,u,i,e=0;
int sum2=1;
int sum=0;
float sum3=0;
float answer2;
int resultTrue=0;
int answer;
int time=0;
char op,op2;
do//产生随机数
{
a=rand()%100+1;
b=rand()%100+1;
c=rand()%100+1;
n=rand()%4+1;
u=rand()%4+1;
e=rand()%10+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=
",a,op,b);//打印
switch(op)//通过运算符计算答案
{
case '+':
{
resultTrue=a+b;
break;
}
case '-':
{
resultTrue=a-b;
break;
}
case '*':
{
resultTrue=a*b;
break;
}
case '/':
{
sum3=(float)a/b;
printf("请输入正确答案(时间为两分钟):");
scanf("%d",&answer2);
if(sum3==answer2)
{
printf("答案正确
");
}
else
{
printf("答案错误
");
printf("正确答案为%f
",sum3);
}
break;
}
}
while(time<121)
{
printf("请输入正确答案(时间为两分钟):");
scanf("%d",&answer);
time=time2();
if(time==120)
{
printf("时间到,无法答题
");
time=0;
break;
}
if(time<120)
{
if(answer==resultTrue)
{
printf("答案正确
");
printf("答题时间为%d
",time);
time=0;
break;
}
else
{
printf("答案错误
");
printf("答案为%d
",resultTrue);
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=
",a,op,b,op,c);//打印
switch(op)//计算答案先通过第一个运算符计算
{
case '+':
{
sum=a+b;
break;
}
case '-':
{
sum=a-b;
break;
}
case '*':
{
sum=a*b;
break;
}
case '/':
{
sum3=(float)a/b;
break;
}
}
switch(op2)//然后再根据第二运算符计算
{
case '+':
{
sum=sum+c;
break;
}
case '-':
{
sum=sum-c;
break;
}
case '*':
{
sum=sum*c;
break;
}
case '/':
{
sum3=(float)sum3/c;
printf("请输入正确答案(时间为两分钟):");
scanf("%d",&answer2);
time=time2();
if(sum3==answer2)
{
printf("答案正确
");
}
else
{
printf("答案错误
");
printf("正确答案为%f
",sum3);
}
break;
}
}
while(time<123)//时间设置
{
printf("请输入正确答案(时间为两分钟):");
scanf("%d",&answer);
if(time==120)
{
printf("时间到,无法答题
");
time=0;
break;
}
if(time<120)
{
if(answer==sum)
{
printf("答案正确
");
printf("你得答题时间为%d
",time);
time=0;
break;
}
else
{
printf("答案错误
");
printf("答案为%d
",sum);
break;
}
}
}
}
case 3:
{
printf("请输入%d!=",e);
scanf("%d",&answer);
time=time2();
for(i=1;i<=e;i++)
{
sum2=sum2*i;
}
while(time<121)
{
if(time==120)
{
time=0;
printf("已到时间
");
break;
}
if(time<120)
{
if(answer==sum2)
{
printf("答案正确
");
printf("用时为%d
",time);
sum2=1;
break;
}
else
{
printf("答案错误
");
printf("答案为%d
",sum2);
sum2=1;
break;
}
}
}
}
}
}while(1);
}
int time2()
{
int time=0;
int i;
int n;
printf("0为退出
");
for(i=0;i<121;i++)
{
scanf("%d",&n);
if(n==0){
break;
}
time++;
}
return time;
}

此程序我们已经成功的完成老师的提出的基本目标,还有扩展中整数的阶乘,负数的显示和分数的显示,但是始终不知如何实现时间的显示,我们尝试运用函数的办法来显示时间,但是失败了。本次程序我负责的两个运算符的运算,结对的负责一个运算符的运算。我们都是通过随机数来选择运算符,然后再通过运算符的判断来进行运算。
结对博客:www.cnblogs.com/201306114356cx/,56陈曦
本次总结,此次程序让我们懂得了合作的重要性,合作可以减少一个人的负担并且可以使工作效率加快,而且还能使别人学习到他们不会的东西,让我们彼此成长。