函数版 任务1 任务2 任务3 试做版 1st (请直接阅读2st)

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int CreateNumber ()
{
    int a;
    a= rand()%10+1;
    return a;
}
//上为生成随机数的函数 名为CreateNumber 调用该函数后可返回一个随机数(其实单独为这个写一个函数我觉得没啥必要 但是机考要求你这么写呀)

int CreateQuestion11111 ()   // 注: 该函数为错误示范
{
    int a , TureAnswer , x1 , x2;
    a=rand()%4;
    switch a
    {
        case 0:
        x1 = CreateNumber();
        x2 = CreateNumber();
        TureAnswer = x1 + x2;
        printf("%d + %d = ?\n");
        break;
        case 1:
        x1 = CreateNumber();
        x2 = CreateNumber();
        TureAnswer = x1 - x2;
        printf("%d - %d = ?\n");
        break;
        case 2:
        x1 = CreateNumber();
        x2 = CreateNumber();
        TureAnswer = x1 * x2;
        printf("%d * %d = ?\n");
        break;
        case 3:
        x1 = CreateNumber();
        x2 = CreateNumber();
        TureAnswer = x1 / x2;
        printf("%d / %d = ?\n");
        break;
    }
    return 0;
}
/*生成数学问题及对应答案TrueAnswer  并将问题呈现给用户 例:1 + 1 = ?
  但是 以上是错误示范(笑) 接下来这个是正确示范                      */

int CreateQuestion ()
{
    int x1 , x2 , op;
    x1= CreateNumber();
    x2= CreateNumber(); //我是觉得为了这俩部分写个随机数函数真没必要 直接rand就行 就像下面这个op一样
    op= rand()%4;  // 随机生成0 1 2 3
    switch(op)
    {
        case 0;
        printf ("%d + %d = ? \n", x1 , x2);
        return a+b;  //这个return a+b可以将TureAnswer的值 传递到其他函数 以起到判断对错的作用 下面的a-b a*b a/b同理
        case 1;
        printf ("%d - %d = ? \n", x1 , x2);
        return a-b;
        case 2;
        printf ("%d * %d = ? \n", x1 , x2);
        return a*b;
        case 3;
        printf ("%d / %d = ? \n", x1 , x2);
        return a/b;
    }   //注: switch内不需要写break; 因为你return之后会直接跳出函数 它起到了break的作用
    return 0;
    /* 你可能会疑惑 既然switch里面已经return了 为什么要在外面再return一次?
       因为如果switch里的return没有执行 且外部没有return 编译器就会报错
       即要有一个必定执行的return来兜底 使得该函数能顺利完成(switch非必定)

       注:也有另一种说法 说switch外面的那个return 0;是死代码 说它没必要写
           故该问题是有争议的 但我认为在外面return一次确实是一种好习惯   */
}
int CheekScore (int a,int b)  //注 : 这个变量a和变量b 分别是你输入的答案 和经函数计算后的正确答案 该函数的目的是判断它俩是否相等 并给出Right/Wrong
{
    if(a==b)
    {
        printf("Right\n");
        return 3;
    }
    else
    {
        printf("Wrong\n");
        return 4;
    }
    return 0;
}
/* Q:为什么要return 3 return 4啊? 何意味?

   A:这是我的小巧思 通过返回3和4 可以在最后统计得分时起到一些小作用 请继续往下看
                                                                            */




int AnalyzeScore()



void RW1 () //任务1:随机产生1-10之间正整数,出乘法问题,直到学生答对为止。
{
/*该死 我写到现在才发现任务1 任务2 任务3只需要考虑乘法运算就行了 我写的太复杂了 该篇作废
  该死 我写到现在才发现任务1 任务2 任务3只需要考虑乘法运算就行了 我写的太复杂了 该篇作废
  该死 我写到现在才发现任务1 任务2 任务3只需要考虑乘法运算就行了 我写的太复杂了 该篇作废





                                                                               */
}
int main()
{
    int a,b,c;
}
posted @ 2025-10-30 10:57  ysdd  阅读(3)  评论(0)    收藏  举报