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

    随机生成30道100以内的四则运算,除整数外,还要支持真分数。
    (1)生成2个一百以内的随机数
    (2)随机产生1-4的随机整数,分别代表+、-、*、/。
    (3)如果是除法,确保第二个数不为0
    (4)生成第4个随机数
    (5)随机产生1-4的随机整数,分别代表+、-、*、/
    (6)每两个判断大小,并确保分母不为0
    (7)将结果输出
    (8)通过30个循环分别输出30道题


    要取得[a,b)的随机整数,使用(rand() % (b-a))+ a;
    要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;
    要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;
    通用公式:a + rand() % n;其中的a是起始值,n是整数的范围。
    要取得a到b之间的随机整数,另一种表示:a + (int)b * rand() / (RAND_MAX + 1)。
    要取得0~1之间的浮点数,可以使用rand() / double(RAND_MAX)。

    
    
    //信1301-2 禹慧慧 生成30 道四则运算题,支持整数和真分数
    #include<iostream>
    #include <stdlib.h> 
    #include <time.h> 
    #define random(x) (rand()%x)
    using namespace std;
    void main()
    {
    srand((int)time(0));//时间种子
    for(int j=0;j<30;j++)//循环30次
    {
    int i;
    i=rand()%2;//随即决定整数计算或真分数计算
    switch(i)
    {
    case(0): 
    {
    int a,b,x;
    char y;
    x=rand()%4;//随即决定运算符号
    switch(x)
    {
    case(0):y='+';break;
    case(1):y='-';break;
    case(2):y='*';break;
    case(3):y='/';break;
    }
    a=random(100);
    b=random(100);//生成随机数
    if(y=='/')//若除法,确保除数不为零
    {
    if(b==0)
    { 
    do
    {b=random(100);} while(b==0);
    }
    
    cout<<a<<y<<b<<"="<<endl;break;
    }
    
    case(1):
    {
    int a,b,c,d,x;
    char y;
    x=rand()%4;//随即决定运算符号
    switch(x)
    {
    case(0):y='+';break;
    case(1):y='-';break;
    case(2):y='*';break;
    case(3):y='/';break;
    }
    a=random(100);
    b=random(100);
    c=random(100);
    d=random(100);//生成随机数
    
    if(a>b)//判断大小,组合成真分数,并确保分母不为0
    cout<<"("<<b<<"/"<<a<<")";
    else
    {
    if(b==0)
    { 
    do{b=random(100);} while(b==0);
    }
    cout<<"("<<a<<"/"<<b<<")";
    }
    cout<<y;
    if(c>d)
    cout<<"("<<d<<"/"<<c<<")";
    else	
    {
    if(d==0)
    { 
    do{d=random(100);} while(d==0);
    }
    cout<<"("<<c<<"/"<<d<<")";
    }
    cout<<"="<<endl;break;
    
    }
    }
    }
    }
    }
    

      总结:这是第一次作业,并不是很难,但是就在上课的时候,因为条件太多,没有头绪,不知从哪里下手,但是课下再看看,一点一点就写出了,并没有很难,知识选择条件太多有些乱。下一次的作业应该会更复杂吧!

  • 相关阅读:
    一个日期Js文件。 2013年10月12日 星期六 癸巳年九月初八
    【Cocosd2d实例教程二】地图编辑器Tiled的安装使用
    结构体快排qsort()
    Crypto API加密通信流程
    LA 4255 Guess
    hdu1005 Number Sequence(数论)
    c++异常 连续抛出异常
    IMP导入数据 报错 IMP-00058 ORA-01691 IMP-00028
    Groovy/Spock 测试导论
    Groovy 与 DSL
  • 原文地址:https://www.cnblogs.com/yhhzxcvbnm/p/5245978.html
Copyright © 2011-2022 走看看