zoukankan      html  css  js  c++  java
  • 程序1:自动生成小学四则运算题目

    本程序改变自:http://blog.csdn.net/qq_27926481/article/details/50836061

    语言:C++

    编译环境:visual studio 2015

    运行环境:Win10

    做出修改的地方:在原码基础上增加了可自主选择生成题目的顺序

    修改后的代码如下:

    #include<iostream>
    #include<stdlib.h>
    #include<iomanip>
    #include<time.h>
    using namespace std;
    #define random() (rand()%100)
    int main()
    {
        int i, j, m, a, b, c, d,count;
        char k;
        srand((int)time(NULL));  //设置时间种子 ,使得程序每次运行的结果都不同
        cout << "请输入生成多少道题目:" ;
        cin >>  count;
        for (i = 0;i<count;i++)
        {
            a = random();
            b = random();
            c = random();
            d = random();

            j = random();
            m = random();

            j = j % 4;
            m = m % 2;
            if (m == 0)  //m=0时,生成整数四则运算
            {
                if (j == 0) k = '+';
                else if (j == 1) k = '-';
                else if (j == 2) k = '*';
                else
                {
                    for (;;)
                    {
                        if (b == 0) b = random();
                        else break;
                    }
                    k = '/';
                }

                cout << setw(3) << a << setw(2) << k << setw(3) << b << setw(3) << "= " << endl;
            }
            else  //m=1时,生成真分数四则运算
            {
                for (;;) //位于分母的c不能为0
                {
                    if (c <= a)
                    {
                        c = random();
                    }
                    else break;
                }
                for (;;)  //位于分母的d不能为0
                {
                    if (d <= b)
                    {
                        d = random();
                    }
                    else break;
                }
                if (j == 0) k = '+';
                else if (j == 1) k = '-';
                else if (j == 2) k = '*';
                else  //当b为0时,b/d为除数,所以b也不能为0
                {
                    for (;;)
                    {
                        if (b == 0)
                        {
                            b = random();
                        }
                        else if (b <= d)
                        {
                            d = random();
                        }
                        else break;
                    }
                    k = '/';
                }

                cout << setw(3) << a << "/" << c << setw(2) << k << setw(3) << b << "/" << d << setw(3) << "= " << endl;
            }

        }
        return 0;
    }

    本意是想增加支持多个运算符的功能,可是一改就出bug,没调正确。

    GitHub上的源码:https://github.com/dangzhen/hello-world/blob/dangzhen-patch-1/main.cpp

  • 相关阅读:
    对健康的一些思考
    对提问的一些思考
    UVA 10118 Free Candies(免费糖果)(dp记忆化搜索)
    UVA 10285 Longest Run on a Snowboard(最长的滑雪路径)(dp记忆化搜索)
    UVA 12186 Another Crisis(工人的请愿书)(树形dp)
    UVA 10003 Cutting Sticks(切木棍)(dp)
    UVA 11584 Partitioning by Palindromes(划分成回文串)(dp)
    【洛谷P1144】最短路计数【最短路】
    【洛谷P1144】最短路计数【最短路】
    【洛谷P1144】最短路计数【最短路】
  • 原文地址:https://www.cnblogs.com/nictang/p/7560994.html
Copyright © 2011-2022 走看看