#include<stdio.h>
#include <stdlib.h>
#include <time.h>
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()%9+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=\n",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("答案正確\n");
}
else
{
printf("答案錯誤\n");
printf("正確答案為%f\n",sum3);
}
break;
}
}
while(time<121)
{
printf("請輸入正確答案(時間為兩分鐘):");
for(i=0;i<121;i++)
{
time++;
scanf("%d",&answer);
if(time==120)
{
printf("時間到,無法答題\n");
time=0;
break;
}
if(time<120)
{
if(answer==resultTrue)
{
printf("答案正確\n");
printf("答題時間為%d\n",time);
time=0;
break;
}
else
{
printf("答案錯誤\n");
printf("答案為%d\n",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=\n",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);
if(sum3==answer2)
{
printf("答案正確\n");
}
else
{
printf("答案錯誤\n");
printf("正確答案為%f\n",sum3);
}
break;
}
}
while(time<123)//時間設置
{
printf("請輸入正確答案(時間為兩分鐘):");
for(i=0;i<123;i++)
{
time++;
scanf("%d",&answer);
if(time==120)
{
printf("時間到,無法答題\n");
time=0;
break;
}
if(time<120)
{
if(answer==sum)
{
printf("答案正確\n");
printf("你得答題時間為%d\n",time);
time=0;
break;
}
else
{
printf("答案錯誤\n");
printf("答案為%d\n",sum);
break;
}
}
}
}
}
case 3:
{
printf("請輸入%d!=",e);
scanf("%d",&answer);
for(i=1;i<=e;i++)
{
sum2=sum2*i;
}
while(time<121)
{
if(time==120)
{
time=0;
printf("已到時間\n");
break;
}
if(time<120)
{
if(answer==sum2)
{
printf("答案正確\n");
printf("用時為%d\n",time);
sum2=1;
break;
}
else
{
printf("答案錯誤\n");
printf("答案為%d\n",sum2);
sum2=1;
break;
}
}
}
}
}
}while(1);
}