• 二柱子的第一次入坑


    二柱子遇到了一个坑,要给他儿子出四则运算题,他以为用编程可以轻松实现,却没想到这只是坑的开始……

    要求:1. 打印30个四则运算式;

            2. 包含真分数;

            3. 100以内运算。

    ……好吧,我拿不准98*74算不算100以内运算,据说他儿子小学二年级……我小学二年级是不会算98*74的……可学真分数时就会算98*74了!¥@%!!&&#……先当会算处理吧,有问题再改。

    不说就当二元运算了……要输出算式的话,相当于形式上输出两个数和一个运算符,要注意除数和分母不能为0,分子要小于分母。其他就是调整格式了。

    随机数函数忘了(๑°ㅁ°๑)‼……顺手补一个:


     

    C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,和time()函数。

    需要说明的是,iostream头文件中就有srand函数的定义,不需要再额外引入stdlib.h;而使用time()函数需要引入ctime头文件。

    如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。

    如果想要获取在一定范围内的数的话,直接做相应的除法取余即可。

    我们上面已经可以获取随机数了,为什么还需要使用time函数呢?我们通过多次运行发现,该程序虽然生成了10个随机数,但是这个10个随机数是固定的,也就是说并不随着时间的变化而变化。

    这与srand()函数有关。srand()用来设置rand()产生随机数时的随机数种子。在调用rand()函数产生随机数前,必须先利用srand()设好随机数种子(seed), 如果未设随机数种子, rand()在调用时会自动设随机数种子为1。

    srand()函数定义 : void srand (unsigned int seed);

    通常可以利用geypid()或time(0)的返回值来当做seed

    如果你用time(0)的话,要加入头文件#include<ctime>

    time(0)或者time(NULL)返回的是系统的时间(从1970.1.1午夜算起),单位:秒


    #include<iostream>
    #include<ctime>
    using namespace std;
    int main()
    {
     srand(time(0));
     for(int i=0;i<10;i++)
     {
      //产生10以内的整数
      cout<<rand()%10<<endl;
     }
    }

    转自脚本之家,侵权请联系本人删除。


     

    代码:

      1 //2016/03/06
      2 //打印100以内四则运算式,包含真分数。
      3 #include<iostream>
      4 #include<ctime>
      5 using namespace std;
      6 
      7 int main()
      8 {
      9     int numa, numb, numc, numd, tmp, x, y, n = 0;
     10     char sign;                                        //运算符
     11     srand(time(0));
     12     for (; n < 30; n++)                               //生成30个算式
     13     {
     14         x = rand() % 4;                               //生成算式符号
     15         switch (x)
     16         {
     17         case 0:sign = '+'; break;
     18         case 1:sign = '-'; break;
     19         case 2:sign = '*'; break;
     20         case 3:sign = '/';
     21         }
     22         y = rand() % 9;                               //生成算式形式
     23         switch (y)
     24         {
     25         case 0:                                       //整数与整数运算
     26         case 1:
     27         case 2:
     28         case 3:
     29         case 4:
     30             numa = rand() % 100;
     31             do{
     32                 numb = rand() % 100;
     33             } while (0 == numb&&'÷' == sign);
     34             cout << numa << sign << numb << "=" << endl << endl;   //打印
     35             break;
     36         case 5:                                       //分数与整数运算
     37             do{
     38                 numa = rand() % 100;
     39             } while (0 == numa);
     40             do{
     41                 numb = rand() % 100;
     42             } while (0 == numb||numb == numa);
     43             if (numa > numb)
     44             {
     45                 tmp = numa;
     46                 numa = numb;
     47                 numb = tmp;
     48             }
     49             do{
     50                 numc = rand() % 100;
     51             } while (0 == numc&&'÷' == sign);
     52             cout << numa << endl << "" << sign << numc << "=" << endl << numb << endl<<endl;   //打印
     53             break;
     54         case 6:                                       //整数与分数运算
     55             numa = rand() % 100;
     56             do{
     57                 numb = rand() % 100;
     58             } while (0 == numb);
     59             do{
     60                 numc = rand() % 100;
     61             } while (0 == numc||numb == numc);
     62             if (numb > numc)
     63             {
     64                 tmp = numc;
     65                 numc = numb;
     66                 numb = tmp;
     67             }
     68             cout << "   " << numb << endl << numa << sign << "—=" << endl << "   " << numc << endl << endl;   //打印
     69             break;
     70         case 7:                                       //分数与分数运算
     71         case 8:
     72             do{
     73                 numa = rand() % 100;
     74             } while (0 == numa);
     75             do{
     76                 numb = rand() % 100;
     77             } while (0 == numb||numb == numa);
     78             if (numa > numb)
     79             {
     80                 tmp = numa;
     81                 numa = numb;
     82                 numb = tmp;
     83             }
     84             do{
     85                 numc = rand() % 100;
     86             } while (0 == numc);
     87             do{
     88                 numd = rand() % 100;
     89             } while (0 == numd||numd == numc);
     90             if (numc > numd)
     91             {
     92                 tmp = numc;
     93                 numc = numd;
     94                 numd = tmp;
     95             }
     96             cout << numa << " ";
     97             if (numa < 10)                            //打印
     98                 cout << " ";
     99             cout << numc<< endl << "" << sign << "—=" << endl << numb ;
    100             if (numb < 10)
    101                 cout << " ";
    102             cout<< " " << numd << endl << endl;
    103             break;
    104         }
    105     }
    106     return 0;
    107 }

    好像还让列编程用时来着……可我是边吃早饭边敲得( ⊙ o ⊙ )啊!敲了很久……我错了,以后注意。

    酱紫,轻喷。


    补图:

     

  • 相关阅读:
    后台执行linux命令
    日志
    配置文件
    后台
    后台代码注释
    递归建立文件夹
    图片合成
    java.awt.Font
    java-日期取特定值
    linux乱码
  • 原文地址:https://www.cnblogs.com/ning-JML/p/5245635.html
Copyright © 2020-2023  润新知