zoukankan      html  css  js  c++  java
  • 四则运算2.0

     #include<stdlib.h>
    #include<stdio.h>
    #include<time.h>
    void main()
    {
        int x,y,z,t,m,n,l;
        float p,q;
        srand(unsigned( time(NULL)));//防止重复
        printf ("请您想要多少个四则运算算式?");
        scanf("%d",&l);//按要求出算式
        for(int i=0;i<l;i++)
        {
            x=rand()%100;
            y=rand()%100;//在100内随机抽出一个整数
            z=rand()%5;//随机分为五种情况,+,-,*,/,真分数运算
            switch(z)
            {
                case 0: printf("%d + %d = ", x, y);
                break;
                case 1:if(x<y){
                t=x;
                x=y;
                y=t;
            }
        printf("%d - %d = ", x, y);//防止得数为负数
        break;
        case 2:
        printf("%d * %d = ", x, y);
        break;
        case 3:
        while (y == 0)
        {
             y = rand() % 100;
        }
        printf("%d / %d = ", x, y);//除数不为0
        break;
        case 4: m = rand() % 100;
        n = rand() % 100;
        z = rand() %4 ;
        while (y == 0)
        {
             y = rand() % 100;
        }
        while (n == 0)
        {
             n = rand() % 100;
        }
        if (x > y)
        {
             t = x;
             x = y;
             y = t;
        }
        if (m > n)
        {
            t = m;
            m = n;
            n = t;
        }
         switch (z)
        {
            case 0:printf("%d/%d + %d/%d = ", x, y, m, n);
            break;
            case 1:
            p = (float)x / (float)y;
            q = (float)m / (float)n;
        if (q>p)
        {
             t = x;
             x = m;
             m = t;
             t = y;
             y = n;
             n = t;
        }
        printf("%d/%d - %d/%d = ", x,y,m,n);//真分数相减大于0
        break;
        case 2:printf("%d/%d * %d/%d = ", x, y, m, n);
        break;
        case 3:
        x = rand() % 100;
        y = rand() % 100;
        m = rand() % 100;
        n = rand() % 100;
        z = rand() % 4;
        while (m == 0)
        {
            m = rand() % 100;
        }
        printf("%d/%d / %d/%d = ", x, y, m, n);
        break;
             }
        }
    }
          system("pause");
    }

     有三个要求。不重复,按要求数量出算式,可以计算真分数。

    1.”srand((unsigned)time(NULL))是初始化随机函数种子:
        1、是拿当前系统时间作为种子,由于时间是变化的,种子变化,可以产生不相同的随机数。
        计算机中的随机数实际上都不是真正的随机数,如果两次给的种子一样,是会生成同样的随机序列的。 所以,一般都会以当前的时间作为种子来生成随机数,这样更加的随机。
        2、使用时,参数可以是unsigned型的任意数据,比如srand(10); 
        3、如果不使用srand,用rand()产生的随机数,在多次运行,结果是一样的。“-来自百度匿名用户。可以有效防止重复问题。
    2.按要求数量,只需再加入一个未知数,使其代替30在赋值即可。
    3.真分数必须注意相减不能为负数,而且相除要符合要求除数要存在且不能为零。

     

  • 相关阅读:
    sql server 字符串转成日期格式
    删除重复的数据
    sql server 去掉前后空格
    取出分组后每组的第一条记录(不用group by)按时间排序
    选中datagridview要选择的行
    sql server 跨表修改
    winfrom 打印表单
    .net导入Excel数据遇到问题(SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDataso) .
    ComboBox绑定数据源后再添加一条记录
    机器学习 | 一个基于机器学习的简单小实践:波斯顿房价预测分析
  • 原文地址:https://www.cnblogs.com/xilei123/p/9752096.html
Copyright © 2011-2022 走看看