#C语言寒假大作战04

一。表头

这个作业属于哪个教程 [班级链接](https://edu.cnblogs.com/campus/zswxy/SE2019-1)
这个作业要求在哪里 这里
我在这个课程的目标是 完善口算题菜单的功能,学习%g的功能
作业正文
其他参考的文献 [学长的视频](http://v.harson.co/static/video/git.mp4)

二.正文

1.设计思路和遇到的问题
设计思路
在上次作业的基础上增加输出计算的结果。

遇到的问题
1.被乘除的数没有乘1.0导致乘除输出的结果不对。
2.定义的字母重复导致输出结果不正确

2.程序结果截图



3程序代码

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

int main ()
{
    int n=-1, m, i, x, y;
    char c, d;
    time_t t;
    srand((unsigned) time(&t));
    printf ("====口算生成器====\n");
    printf ("欢迎使用口算生成器:\n");
    printf(" \n");
    printf(" \n");
    printf ("帮助信息\n");
    printf ("您需要输入命令代号来进行操作,且\n");
    printf ("一年级题目为不超过十位数的加减法;\n");
    printf ("二年级的题目为不超过百位数的乘除法;\n");
    printf ("三年级的题目为不超过百位的加减乘除的混合题目.\n");
    while (n!=0)
    {
        printf(" \n");
        printf(" \n");
        printf("操作列表:\n");
        printf("1>一年级    2>二年级     3>三年级\n");
        printf("4>帮助      5>退出\n"); 
        printf("请选择:\n");
        scanf ("%d", &n);
        printf (">>>执行操作:\n"); 
        switch (n)
        {
            case 1: printf ("这是一年级的题目:\n");
            printf ("请给出需要生成的题目个数:\n");
            scanf ("%d", &m);
            printf (">>>执行操作:\n");
            for (i=1;i<=m;i++)
            {
                x=rand()%2;
                if (x==1)
                {
                int a=rand()%10, b=rand()%10;
                printf (" %d + %d = %d \n", a ,b, a+b);
                }
                else
                {
                int a=rand()%10, b=rand()%10;
                printf (" %d - %d = %d \n", a , b, a-b);
                }
            }
            break ;
            case 2: printf ("这是二年级的题目:\n");
            printf ("请给出需要生成的题目个数:\n");
            scanf ("%d", &m);
            printf (">>>执行操作:\n");
            for (i=1;i<=m;i++)
            {
                x=rand()%2;
                if (x==1)
                {
                int a=rand()%100, b=rand()%100;
                printf (" %d * %d = %g \n", a, b, a*1.0*b);
                }
                else
                {
                int a=rand()%100, b=rand()%99+1;
                printf (" %d / %d = %g \n", a, b, a*1.0/b);
                }
            }
            break ;
            case 3: printf ("这是三年级的题目:\n");
            printf ("请给出需要生成的题目个数:\n");
            scanf ("%d", &m);
            printf (">>>执行操作:\n");
            for (i=1;i<=m;i++)
            {
                int a=rand()%100, b=rand()%99+1, e=rand()%99+1;
                double o, p;
                x=rand()%4;
                switch (x)
                {
                    case 0:c='+', o=a+b; break;
                    case 1:c='-', o=a-b; break;
                    case 2:c='*', o=a*1.0*b; break;
                    case 3:c='/', o=a*1.0/b; break;
                }
                y=rand()%4;
                switch (y)
                {
                    case 0:d='+', p=o+e; break;
                    case 1:d='-', p=o-e; break;
                    case 2:d='*', p=o*1.0*e; break;
                    case 3:d='/', p=o*1.0/e; break;
                }
                printf (" %d %c %d %c %d = %g \n", a, c, b, d, e, p);
            }
            break ;
            case 4:printf(" \n");
            printf("帮助信息\n");
            printf ("您需要输入命令代号来进行操作,且\n");
            printf ("一年级题目为不超过十位数的加减法;\n");
            printf ("二年级的题目为不超过百位数的乘除法;\n");
            printf ("三年级的题目为不超过百位的加减乘除的混合题目.\n");
            break;
            case 5:printf ("程序结束,欢迎下次使用,按任意键结束");
            return 0;
            default:printf ("Error!!!\n");
            printf ("错误操作指令, 请重新输入\n");
        }
    }
}

4码云界面

posted on 2020-03-05 21:03  魏乾豪  阅读(104)  评论(0编辑  收藏  举报

导航