何嘉政

导航

C语言寒假大作战04

这个作业属于哪个课程 班级链接
这个作业要求在哪里 作业链接
这个作业的目标 熟悉%g的使用
作业正文 此篇博客
其他参考文献 文章链接

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.Gitee上传截图与链接

何嘉政的主页

posted on 2020-02-17 18:43  何嘉政  阅读(172)  评论(0编辑  收藏  举报