C语言寒假大作战04

问题 答案
这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2019-4/
这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10277
我在这个课程的目标是 学会新的rand程序运作
这个作业在具体哪个方面帮助我实现目标 编制的代码以及提示,以及查阅资料获得的新知识,用不同的语法来绘代码。
参考文献 https://zhinan.sogou.com/guide/detail/?id=316513503373

2.2.2 设计思路和遇到的问题

[设计思路]

  • 本周作业要有随机数产生的正确的答案,势必要有新函数增添,提示要用rand函数,所以只需要在表头添加即可。

[遇到的问题]

  • 不知道怎么编写rand函数,而且编译过程不知道安插于何处,思维混乱,对rand函数也不熟悉,一度陷入僵局。

2.2.3 程序结果截图

C语言寒假大作战04_第1张图片
C语言寒假大作战04_第2张图片
C语言寒假大作战04_第3张图片
C语言寒假大作战04_第4张图片

2.2.4 程序代码

#include 
#include
#include 
void menu();
void help();
void error();
void operation_1();void one_1();
void operation_2();void two_1();
void operation_3();void three_1();
int main()
{
    int n;
    printf("========== 口算生成器 ==========\n");
    printf("欢迎使用口算生成器 :\n");
    printf("小学生必备神器\n");
    printf("\n");
    help();
    while(1)
    {
        menu();
        scanf("%d",&n);
        switch(n)
        {
            case 1:operation_1();break;
            case 2:operation_2();break;
            case 3:operation_3();break;
            case 4:help();break;
        }
        printf("\n");
        if(n==5) break;
        if(n>5||n<1) error();
    }
    return 0;
}
void help()
{
    printf("帮助信息\n");
    printf("您需要输入命令代号来进行操作\n");
    printf("一年级题目为不超过十位的加减法\n");
    printf("二年级题目为不超过百位的乘除法\n");
    printf("三年级题目为不超过百位的加减乘除混合题目\n");
    printf("\n");
}
void menu()
{
    printf("操作列表:\n1)一年级    2)二年级    3)三年级\n");
    printf("4)帮助      5)退出程序\n请输入代号:");
}
void error()
{
    printf("哦买噶 错啦 请重新输入 ");
    printf("\n");
    printf("\n");
 } 
 void operation_1()
 {
    printf("请输入题目数量>");
    one_1();
 }
  void operation_2()
 {
    printf("请输入题目数量>");
    two_1();
 }
  void operation_3()
 {
    printf("请输入题目数量>");
    three_1();
 }
  void one_1()
 {
    int n,a,b,c;
    char op[2]={'+','-'};
    scanf("%d",&n);
    printf("一年级题目如下:\n"); 
    srand((unsigned)time(NULL));
    for(int i=1;i<=n;i++)
    {
        a=rand()%10+1;
        b=rand()%10+1;
        c=rand()%2;
        if(op[c]=='+')
        printf("%2d + %2d = %2d",a,b,a+b);
        else
        printf("%2d - %2d = %2d",a,b,a-b);
        printf("\n");
     } 
 } 
 void two_1()
 {
     int n,a,b,c;
    char op[2]={'*','/'}; 
    scanf("%d",&n);
    printf("二年级题目如下:\n"); 
    srand((unsigned)time(NULL));
    for(int i=1;i<=n;i++)
    {
        a=rand()%100+1;
        b=rand()%100+1;
        c=rand()%2;
        if(op[c]=='*')
        printf("%3d * %3d = %3d",a,b,a*b);
        else
        printf("%3d / %3d = %3g",a,b,(double)(a/(b*1.0)));
        printf("\n");
     } 
 }
 void three_1()
 {
    int n,a,b,c,d,e;
    char op[4]={'+','-','*','/'} ;
    scanf("%d",&n); 
    printf("三年级题目如下:\n"); 
    srand((unsigned)time(NULL));
    for(int i=1;i<=n;i++)
    {
        a=rand()%100+1;
        b=rand()%100+1;
        c=rand()%100+1; 
        d=rand()%4;
        e=rand()%4; 
        switch(d)
        {
            case 0:
                printf("%3d + %3d ",a,b);
                if(op[e]=='*')
                    printf("* %3d = %3d ",e,a+b*c);
                else if(op[e]=='/')
                    printf("/ %3d = %3g",c,a+b/(c*1.0));
                else if(op[e]=='+')
                    printf("+ %3d = %3d ",c,a+b+c);
                else 
                    printf("- %3d = %3d",c,a+b-c);
                break;
            case 1:
                    printf("%3d - %3d ",a,b);
                if(op[e]=='*')
                    printf("* %3d = %3d ",e,a-b*c);
                else if(op[e]=='/')
                    printf("/ %3d = %3g",c,a-b/(c*1.0));
                else if(op[e]=='+')
                    printf("+ %3d = %3d ",c,a-b+c);
                else 
                    printf("- %3d = %3d",c,a-b-c);
                break;
            case 2:
                    printf("%3d * %3d ",a,b);
                if(op[e]=='*')
                    printf("* %3d = %3d ",e,a*b*c);
                else if(op[e]=='/')
                    printf("/ %3d = %3g",c,a*b/(c*1.0));
                else if(op[e]=='+')
                    printf("+ %3d = %3d ",c,a*b+c);
                else 
                    printf("- %3d = %3d",c,a*b-c);
                break;
            case 3:
                    printf("%3d / %3d ",a,b);
                if(op[e]=='*')
                    printf("* %3d = %3g ",e,a/(c*b*1.0));
                else if(op[e]=='/')
                    printf("/ %3d = %3g",c,a/(b*1.0)/c);
                else if(op[e]=='+')
                    printf("+ %3d = %3g ",c,a/(b*1.0)+c);
                else 
                    printf("- %3d = %3g",c,a/(b*1.0)-c);
                break;
        }
        
        printf("\n");
     }
 }

2.2.6 Gitee上传截图与链接

C语言寒假大作战04_第5张图片
C语言寒假大作战04_第6张图片

主页地址

https://gitee.com/jiang_jing_ying

你可能感兴趣的:(C语言寒假大作战04)