zoukankan      html  css  js  c++  java
  • C语言寒假大作战04

    这个作业属于那个课程 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10269
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10269
    这个作业的目标是 熟悉用函数和switch语句编程口算题菜单,还有随机数rand的使用,并算出生成口算题的结果
    作业正文 在上次作业中加个答案函数即可,生成随机数的结果
    参考文献 https://zhidao.baidu.com/question/271899014.html,百度c语言中%g的使用和含义

    2.2.2设计思路和遇到的问题

    设计思路:和前面的第三次作业相似,添加答案函数即可。
    遇到的问题:不知道生成答案,还有%g的意思不理解。
    
    

    2.2.3程序结果截图

    2.2.4程序代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <string.h>
    void menu(); 
    void help();
    void one();void operation_1(); 
    void two();void operation_2();
    void three();void operation_3(); 
    void error();
    int main()
    {
    int i=1,n;
    printf("==========口算生成器==========
    ");
    printf("欢迎使用口算生成器:
    ");
    printf("
    ");
    help();
    while(i!=0)
    {
    menu();
    printf("请输入操作> ");
    scanf("%d",&i);
    printf("<执行操作:)
    ");
    printf("
    ");
    switch(i)
    {
    case 1:operation_1();break;
    case 2:operation_2();break;
    case 3:operation_3();break;
    case 4:help();break;
    case 5:printf("程序结束, 欢迎下次使用
    ");
    printf("任意键结束……");
    i=0;
    default:error();break;
    }
    }
    return 0;
    }
    void menu()
    {
    printf("
    ");
    printf("操作列表:
    ");
    printf("1)一年级 2)二年级 3)三年级
    ");
    printf("4)帮助 5)退出程序
    ");
    }
    void help()
    {
    printf("
    ");
    printf("帮助信息
    ");
    printf("您需要输入命令代号来进行操作,且
    ");
    printf("一年级题目为不超过十位的加减法
    二年级题目为不超过百位的乘除法
    三年级题目为不超过百位的加减乘除混合题目
    ");
    }
    void operation_1() 
    {
    printf("请输入生成个数>");
    one();
    }
    void operation_2()
    {
    printf("请输入生成个数>");
    two();
    }
    void operation_3()
    {
    printf("请输入生成个数>");
    three();
    }
    void one()
    {
    int n,a,b,c,d;
    time_t t;
    srand((unsigned) time(&t));
    printf("现在是一年级题目:
    ");
    scanf("%d",&n);
    printf("<执行操作:)
    ");
    for (int i=0;i<n;i++)
    {
        a=rand() % 10;
        b=rand() % 10;
        c=rand() % 4;
        if (c==0)
        {
        
           d=a+b;
           printf("%d + %d = %d
    ",a,b,d);
        }
        else
        {
           d=a-b;
           printf("%d - %d = %d
    ",a,b,d);
           }
    }
    
    }
    void two()
    {
    int n,a,b,c;
    float d;
    time_t t;
    srand((unsigned) time(&t));
    printf("现在是二年级题目:
    ");
    scanf("%d",&n);
    printf("<执行操作:)
    ");
    for (int i=0;i<n;i++)
    {
        a=rand() % 10;
        b=rand() % 10;
        c=rand() % 2;
        if (c==0)
        {
           d=a*b;
           printf("%d * %d = %g
    ",a,b,d);
           }
        else{
        while(b==0)
        {
            b=rand() % 10;
         } 
           d=a/(b*1.0);
           printf("%d / %d = %g
    ",a,b,d);
           }
    }
    
    }
    void three()
    {
     int n,m,i,a,b,c;
    float z;
    char fh1[2],fh2[2];
    time_t t;
    srand((unsigned) time(&t));
    printf("现在是三年级题目:
    ");
    scanf("%d",&n);
    printf("<执行操作:)
    ");
    char fh[4][6] = {"*","/","+","-"};
     for (int i=0; i<n; i++)
    {
        a=rand() % 100;
        b=rand() % 100;
        c=rand() % 100;
        while (a==0||b==0||c==0)
        {
            a=rand() % 100;
    		b=rand() % 100;
    		c=rand() % 100; 
        }
        strcpy(fh1,fh[rand() % 3]);
        strcpy(fh2,fh[rand() % 3]);
        if(strcmp(fh1,"*")==0&&strcmp(fh2,"*")==0)
        {
            z = a * b * c;
        printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"*")==0&&strcmp(fh2,"/")==0)
        {
            z = a * b / (c*1.0);
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"*")==0&&strcmp(fh2,"+")==0)
        {
            z = a * b + c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"*")==0&&strcmp(fh2,"-")==0)
        {
            z = a * b - c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"/")==0&&strcmp(fh2,"+")==0)
        {
            z = a / (b*1.0) + c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"/")==0&&strcmp(fh2,"-")==0)
        {
            z = a / (b*1.0) - c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"/")==0&&strcmp(fh2,"/")==0)
        {
            z = a / (b*1.0) / (c*1.0);
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"+")==0&&strcmp(fh2,"-")==0)
        {
            z = a + b - c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"+")==0&&strcmp(fh2,"+")==0)
        {
            z = a + b + c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"-")==0&&strcmp(fh2,"-")==0)
        {
            z = a - b - c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"/")==0&&strcmp(fh2,"*")==0)
        {
            z = a / (b*1.0) * c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"+")==0&&strcmp(fh2,"/")==0)
        {
            z = a + b / (c*1.0);
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"+")==0&&strcmp(fh2,"*")==0)
        {
            z = a + b * c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"-")==0&&strcmp(fh2,"/")==0)
        {
            z = a - b / (c*1.0);
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"-")==0&&strcmp(fh2,"+")==0)
        {
            z = a - b + c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
        else if(strcmp(fh1,"-")==0&&strcmp(fh2,"*")==0)
        {
            z = a - b * c;
            printf("%2d %s %2d %s %2d = %g
    ",a,fh1,b,fh2,c,z);
        }
    }
    
    }
    void error()
    {
    printf("Error!!!
    ");
    printf("错误操作指令, 请重新输入
    ");
    }
    
    

    2.2.5Gitee上传截图与链接


    https://gitee.com/deng_zhi_zhu/deng-zhizhuo

  • 相关阅读:
    bzoj 1004 burnside 引理+DP
    bzoj 3453 数论
    HDU 2899 三分
    HDU 2199 二分
    bzoj 3450 DP
    bzoj 1197 DP
    bzoj 2121 DP
    bzoj 2258 splay
    bzoj 1296 DP
    Memcached的限制和使用建议
  • 原文地址:https://www.cnblogs.com/dengzhizhuo/p/12312557.html
Copyright © 2011-2022 走看看