#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int sjs()
{
return (rand()%9+1)*10 + (rand()%9+1);
}
int MakeQuestion ()
{
int a,num1,num2,TrueAnswer;
a=sjs();
num1=a/10+1;
num2=a%10+1;
TrueAnswer = num1 * num2 ;
printf("%d * %d = ? \n",num1 , num2);
return TrueAnswer;
}
int CheekAnswer(int Answer , int TrueAnswer)
{
if(Answer == TrueAnswer)
{
printf("Right\n");
return 1;
}
else
{
printf("Wrong\n");
return 0;
}
}
int RW1()
{
int Answer,TrueAnswer,temp1;
do
{
TrueAnswer = MakeQuestion();
scanf("%d",&Answer);
temp1 = CheekAnswer(Answer , TrueAnswer);
}while(temp1 != 1);
printf("恭喜你已通过实验一\n");
return 0;
}
int RW2()
{
int Answer,TrueAnswer,temp1;
int wrongCount = 0;
do
{
TrueAnswer = MakeQuestion();
scanf("%d",&Answer);
temp1 = CheekAnswer(Answer , TrueAnswer);
if(temp1 != 1 )
{
wrongCount++;
printf("错误次数: %d/3\n", wrongCount);
}
}while(wrongCount != 3);
printf("您未能通过实验二,已退出实验二\n");
return 0;
}
int RW3()
{
int i,Answer,TrueAnswer,temp1;
int wrongCount = 0;
for(i=0;i<10;i++)
{
TrueAnswer = MakeQuestion();
scanf("%d",&Answer);
temp1 = CheekAnswer(Answer , TrueAnswer);
if(temp1 != 1 )
{
wrongCount++;
}
}
printf("您的分数为%d\n正确率为%d%%\n已退出实验三\n",100-10*wrongCount,100-10*wrongCount);
return 0;
}
int main()
{
int a;
srand(time(NULL));
printf("请输入数字1~3进入任务1~3\n");
printf("任务1:答对终止\n");
printf("任务2:答错三次终止\n");
printf("任务3:答10题,输出分数和正确率终止\n");
while(scanf("%d",&a)==1)
{
if(a==1) RW1();
else if(a==2) RW2();
else if(a==3) RW3();
else printf("输入错误,请输入1-3: ");
}
return 0;
}