• 四则运算改进版


    #include<stdio.h>
    int sum = 0;
    int sum1 = 0;
    int sum2 = 0;
    int sum3 = 0;
    struct NUM //一个运算符号整数存储
    {
        int one;
        int two;
        int three;
    }stu[400];
    struct NUM1 // 一个运算符号真分数存储
    {
        int first;//第一个数的分子
        int first1;//第一个数的分母
        int second;
        int second1;
        int result;
        int result1;
    }stu1[400];
    struct NUM2  //两个运算符号的存储
    {
        int one;
        int two;
        int three;
        int result;
    }stu2[400];
    struct NUM3 //带括号的四则运算
    {
        int one;
        int two;
        int three;
        int result;
    }stu3[400];
    int show();
    void show1();
    int integer();//整数
    int fraction();//分数
    int complex();//多符号数
    int braces();//带括号的
    int error();
    void main()
    {
        int a=1,b ;
        while (a == 1)
            {
                b = show();
                switch (b)
                {
                    case 1: a = integer();
                        break;
                    case 2: a = fraction();
                        break;
                    case 3: a = complex();
                        break;
                    case 4: a = braces();
                        break;
                    case 5: a =error();
                        break;
                    default:a =0;
                        break;
                }
            }
        show1();
    }
    int show()
    {
        int a;
        printf("=========目录==========
    ");
        printf("1.整数运算
    ");
        printf("2.真分数运算
    ");
        printf("3.多运算符的运算
    ");
        printf("4.带括号的四则运算
    ");
        printf("5.错题记录
    ");
        printf("0.结束运算
    ");
        printf("请输入你想进行运算的序号
    ");
        scanf_s("%d", &a);
        return a;
    }
    void show1()
    {
        printf("谢谢使用");
    }
    int integer()//整数
    {
        int a, b, c, m;
        int s[10];
        for (int i = 0; i < 10; i++)
        {
            a = stu[sum].one = rand() % 10 + 1;
            b = stu[sum].two = rand() % 10 + 1;
            int n = rand() % 4 + 1;
            switch (n)
            {
            case 1: stu[sum].three = a + b;
                printf("%d+%d=	", a, b); break;
            case 2: stu[sum].three = a - b;
                printf("%d-%d=	", a, b); break;
            case 3: stu[sum].three = a*b;
                printf("%d*%d=	", a, b); break;
            case 4: stu[sum].three = a /b;
                printf("%d/%d=	", a, b); break;
    
            }
            sum = sum + 1;
        }
        printf("请输入上面十题的答案
    ");
        for (int i = 0; i < 10; i++)
        {
            printf("%d.", i + 1);
            scanf_s("%d", &s[i]);
        }
        for (int i = 0; i < 10; i++)
        {
            if (s[i] == stu[sum - 9 + i].three)
            {
                printf("");
            }
            else {
                printf("第%d题错误,正确答案是%d   ", i + 1, stu[sum-9+i].three);
                if (i == 9)
                {
                    printf("
    ");
                }
            }
        }
        printf("继续请按1,结束请按任意键
    ");
        scanf_s("%d", &m);
        if (m == 1)
            return 1;
        else
            return 0;
    }
    int fraction()//分数
    {
        int a, b, c, d, m;
        int s[20];
        for (int i = 0; i < 10; i++)
        {
            a = stu1[sum1].first = rand() % 10 + 1;
            b = stu1[sum1].first1 = rand() % 10 + a;
            c = stu1[sum1].second = rand() % 10 + 1;
            d = stu1[sum1].second1 = rand() % 10 + c;
            int n= rand() % 4 + 1;
            switch (n)
            {
            case 1: stu1[sum1].result = a*d + c*b;
                    stu1[sum1].result1 = b*d;
                printf("%d/%d+%d/%d=	", a, b,c,d); break;
            case 2: stu1[sum1].result = a*d - c*b;
                    stu1[sum1].result1 = b*d;
                printf("%d/%d-%d/%d=	", a, b, c, d); break;
            case 3: stu1[sum1].result = a*c;
                    stu1[sum1].result1 = b*d;
                printf("%d/%d*%d/%d=	", a, b, c, d); break;
            case 4: stu1[sum1].result = a*d;
                    stu1[sum1].result1 = b*c;
                printf("%d/%d/%d/%d=	", a, b, c, d); break;
    
            }
            sum = sum + 1;
        }
        printf("请输入上面十题的答案
    ");
        for (int i = 0; i < 10; i++)
        {
            printf("%d.分子", i + 1);
            scanf_s("%d", &s[i]);
            printf("%d.分母", i + 1);
            scanf_s("%d", &s[i+10]);
        }
        for (int i = 0; i < 10; i++)
        {
            if (s[i] == stu1[sum1 - 9 + i].result&&s[i+10] == stu1[sum1 - 9 + i].result1)
            {
                printf("");
            }
            else {
                printf("第%d题错误,正确答案是%d/%d  ", i + 1, stu1[sum1 - 9 + i].result, stu1[sum1 - 9 + i].result1);
                if (i == 9)
                {
                    printf("
    ");
                }
            }
        }
        printf("继续请按1,结束请按任意键
    ");
        scanf_s("%d", &m);
        if (m == 1)
            return 1;
        else
            return 0;
    }
    int complex()//多符号数
    {
        int a, b, c, m;
        int s[10];
        for (int i = 0; i < 10; i++)
        {
            a = stu2[sum2].one = rand() % 10 + 1;
            b = stu2[sum2].two = rand() % 10 + 1;
            c = stu2[sum2].three = rand() % 10 + 1;
            int n = rand() % 4 + 1;
            switch (n)
            {
            case 1: stu2[sum2].result = (a*b)+ c;
                printf("%d*%d+%d=	", a, b, c); break;
            case 2: stu2[sum2].result = a + (b * c);
                printf("%d+%d*%d=	", a, b, c); break;
            case 3: stu2[sum2].result = (a*b) - c;
                printf("%d*%d-%d=	", a, b, c); break;
            case 4: stu2[sum2].result = a - (b * c);
                printf("%d-%d*%d=	", a, b, c); break;
    
            }
            sum = sum + 1;
        }
        printf("请输入上面十题的答案
    ");
        for (int i = 0; i < 10; i++)
        {
            printf("%d.", i + 1);
            scanf_s("%d", &s[i]);
        }
        for (int i = 0; i < 10; i++)
        {
            if (s[i] == stu2[sum2-9+i].result)
            {
                printf("");
            }
            else {
                printf("第%d题错误,正确答案是%d  ", i + 1, stu2[i].result);
        
                if (i == 9)
                {
                    printf("
    ");
                }
            }
        }
        printf("继续请按1,结束请按任意键
    ");
        scanf_s("%d", &m);
        if (m == 1)
            return 1;
        else
            return 0;
    }
    int braces()//带括号的
    {
        int a, b, c, m;
        int s[10];
        for (int i = 0; i < 10; i++)
        {
            a = stu3[sum3].one = rand() % 10 + 1;
            b = stu3[sum3].two = rand() % 10 + 1;
            c = stu3[sum3].three = rand() % 10 + 1;
            int n = rand() % 4 + 1;
            switch (n)
            {
            case 1: stu3[sum3].result = a*(b + c);
                printf("%d*(%d+%d)=	", a, b, c); break;
            case 2: stu3[sum3].result = (a - b) * c;
                printf("(%d-%d)*%d=	", a, b, c); break;
            case 3: stu3[sum3].result = a/(b - c);
                printf("%d/(%d-%d)=	", a, b, c); break;
            case 4: stu3[sum3].result = (a + b )/ c;
                printf("(%d-%d)/%d=	", a, b, c); break;
    
            }
            sum = sum + 1;
        }
        printf("请输入上面十题的答案
    ");
        for (int i = 0; i < 10; i++)
        {
            printf("%d.", i + 1);
            scanf_s("%d", &s[i]);
        }
        for (int i = 0; i < 10; i++)
        {
            if (s[i] == stu3[sum3 - 9 + i].result)
            {
                printf("");
            }
            else {
                printf("第%d题错误,正确答案是%d  ", i + 1, stu2[i].result);
            
                if (i == 9)
                {
                    printf("
    ");
                }
            }
        }
        printf("继续请按1,结束请按任意键
    ");
        scanf_s("%d", &m);
        if (m == 1)
            return 1;
        else
            return 0;
    }

  • 相关阅读:
    地图 SDK 系列教程-在地图上展示指定区域
    [奇思妙想]下一个和微博、微信同级别的应用为是什么样的
    [办公自动化]EXCEL不大,但是保存很慢
    [奇思妙想]公共图书馆+快递
    [奇思妙想]“停哪了”
    [IT学习]阿铭Linux 微信公众号 每日一题 解析
    [IT学习]GIT 学习
    [故障处理]西部数据wd elements xp 无法识别
    [奇思妙想]无人机
    [IT学习]跟阿铭学linux(第3版)
  • 原文地址:https://www.cnblogs.com/shenpfei/p/5282212.html
Copyright © 2020-2023  润新知