函数版 任务1 任务2 任务3 最终版 2025/11/1 9:44

#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;
}
posted @ 2025-11-01 09:44  ysdd  阅读(5)  评论(0)    收藏  举报