C语言寒假大作战03

限于喜欢 提交于 2020-02-11 14:43:33
这个作业属于哪个课程 班级链接
这个作业要求在哪里 作业链接
这个作业的目标 熟悉使用git命令,理解代码用途
其他参考文献 C语言rand和srand用法详解
作业正文 本篇博客

1.1 设计思路和遇到的问题

  • 设计思路:用for循环取十道题目,符号用rand的取值来随机选取,随机数也同理用rand生成,用srand和时间来取不同的随机数,添加到已有菜单中。
  • 遇到的问题:开始用int来添加rand函数,导致十个题目完全相同,后来改用直接取rand,解决问题。

    1.2程序结果截图



1.3程序代码

#include<stdio.h>
#include <stdlib.h>
#include <time.h>
void one()
{
    printf(":)\n");
    printf("\n");
    printf("现在是一年级题目:\n");
    printf("操作完成\n\n");
    srand((int)time(0));
    int i;
    for(i=1;i<=10;i++)
    {
        if(rand()%2==1)
        {
            printf("%d + %d =__\n",rand() % (10),rand() % (10));
        }
        else 
            printf("%d - %d =__\n",rand() % (10),rand() % (10));

    }
    
}
void two()
{
    printf(":)\n");
    printf("\n");
    printf("现在是二年级题目:\n");
    printf("操作完成\n");
    srand((int)time(0));
    int i;
    for(i=1;i<=10;i++)
    {
        if(rand()%2==1)
        {
            printf("%d * %d =__\n",rand() % (101),rand() % (101));
        }
        else 
            printf("%d / %d =__\n",rand() % (101),rand() % (101)+1);

    }
}
void three()
{
    printf(":)\n");
    printf("\n");
    printf("现在是三年级题目:\n");
    printf("操作完成\n");
    srand((int)time(0));
    int i;
    for(i=1;i<=10;i++)
    {
        if(rand()%17==0)
            printf("%d + %d + %d=__\n",rand() % (101),rand() % (101),rand() % (101));
        else if(rand()%17==1)
            printf("%d + %d - %d=__\n",rand() % (101),rand() % (101),rand() % (101));
        else if(rand()%17==2)
            printf("%d + %d * %d=__\n",rand() % (101),rand() % (101),rand() % (101));
        else if(rand()%17==3)
            printf("%d + %d / %d=__\n",rand() % (101),rand() % (101),rand() % (101)+1);
        else if(rand()%17==4)
            printf("%d * %d / %d=__\n",rand() % (101),rand() % (101),rand() % (101)+1);
        else if(rand()%17==5)
            printf("%d * %d - %d=__\n",rand() % (101),rand() % (101),rand() % (101));
        else if(rand()%17==6)
            printf("%d * %d * %d=__\n",rand() % (101),rand() % (101),rand() % (101));
        else if(rand()%17==7)
            printf("%d / %d / %d=__\n",rand() % (101),rand() % (101)+1,rand() % (101)+1);
        else if(rand()%17==8)
            printf("%d / %d - %d=__\n",rand() % (101),rand() % (101)+1,rand() % (101));
        else if(rand()%17==9)
            printf("%d - %d - %d=__\n",rand() % (101),rand() % (101),rand() % (101));
        else if(rand()%17==10)
            printf("%d - %d + %d=__\n",rand() % (101),rand() % (101),rand() % (101));
        else if(rand()%17==11)
            printf("%d * %d + %d=__\n",rand() % (101),rand() % (101),rand() % (101));
        else if(rand()%17==12)
            printf("%d / %d + %d=__\n",rand() % (101),rand() % (101)+1),rand() % (101);
        else if(rand()%17==13)
            printf("%d - %d * %d=__\n",rand() % (101),rand() % (101),rand() % (101));
        else if(rand()%17==14)
            printf("%d - %d / %d=__\n",rand() % (101),rand() % (101),rand() % (101)+1);
        else
            printf("%d / %d * %d=__\n",rand() % (101),rand() % (101)+1,rand() % (101));
    }   
}
void mistake()
{
    printf("Error!\n");
    printf("错误操作指令,请重新输入\n");
    printf("\n");
}
void four()
{
    printf("\n");
    printf("帮助信息\n");
    printf("你需要输入命令代号来进行操作,且\n");
    printf("一年级题目为不超过十位数的加减法;\n");
    printf("二年级的题目为不超过百位数的乘除法;\n");
    printf("三年级的题目为不超过百位的加减乘除的混合题目.\n\n");
}
int main()
{
    printf("======口算生成器======\n");
    printf("欢迎使用口算生成器:\n\n");
    printf("帮助信息\n");
    printf("您需要输入命令代号来进行操作,且\n");
    printf("一年级的题目为不超过十位数的加减法;\n");
    printf("二年级的题目为不超过百位数的乘除法:\n");
    printf("三年级的题目为不超过百位数的加减乘除的混合题目.\n\n");
    printf("操作列表:\n");
    printf("1)一年级 2)二年级 3)三年级\n");
    printf("4)帮助 5)退出程序\n");
    printf("请输入操作:");
    int n;
    
    scanf("%d", &n);
    while (1)
    {
        if (n == 5)
        {
            break;
        }
        switch (n)
        {
        case 1: one(); break;
        case 2: two(); break;
        case 3: three(); break;
        case 4: four(); break;
        default: mistake(); break;
        }
        printf("操作列表:\n");
        printf("1)一年级 2)二年级 3)三年级\n");
        printf("4)帮助 5)退出程序\n");
        printf("请输入操作:");
        n = 0;
        scanf("%d", &n);
    }
    printf(":)\n");
    printf("\n");
    printf("程序结束,欢迎下次使用,按任意键结束");
    getchar();
    return 0;
}

1.4Gitee上传截图与链接


solokill的主页

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!