个人作业1:随机生成四则运算

                             个人作业1:随机生成四则运算

 

思路:1.利用rand函数随机生成2个100以内随机整数作为两个运算数。

        2.随机生成小于5的整数,利用switch函数,0代表整数加法,1代表整数减法,2代表整数乘法,3代表整数除法,4代表真分数运算部分。

        3.真分数保证分母大于分子,分母不为0。分子分母均有两个随机数相除获得。

        4.将以上设置循环打印输出.

 

代码:

//随机生成30道四则运算(包括真分数)

//孔宇航 2016/3/4

 

#include<iostream>

#include<stdlib.h>

#include<iomanip>

#include<time.h>

using namespace std;

#define random() (rand()%100)

void main()

{

            int num1,num2,num3,num4;

            srand((int)time(NULL));

       for(int i=0;i<30;i++)

           {

                    num1=random();

                    num2=random();

                   int k=(int)rand()%5;

                   switch(k)

                   {

                   case 0:{cout<<num1<<"+"<<num2<<"=";

                   break;}                                 //进行整数加法运算

                   case 1:{cout<<num1<<"-"<<num2<<"=";

                   break;}                                //进行整数减法运算

                   case 2:{cout<<num1<<"*"<<num2<<"=";

                   break;}                                //进行整数乘法运算

                   case 3:{

                   while(num2==0)

                   num2=random();

                   cout<<num1<<"/"<<num2<<"=";

                   break;}                                //进行整数除法运算

                   case 4:                                //真分数运算部分

             {

          while(num2==0||num1>=num2)

         {

            num1=random();

                       num2=random();

         }

            num3=random();

                       num4=random();

        while(num4==0||num3>=num4)

        {

            num3=random();

                       num4=random();

        }

            int q=(int)rand()%4;

        switch(q)

        {

            case 0:

                cout<<"("<<num1<<"/"<<num2<<")"<<"+"<<"("<<num3<<"/"<<num4<<")"<<"=";

              

                break;

            case 1:

                   cout<<"("<<num1<<"/"<<num2<<")"<<"-"<<"("<<num3<<"/"<<num4<<")"<<"=";

                break;

            case 2:

                 cout<<"("<<num1<<"/"<<num2<<")"<<"*"<<"("<<num3<<"/"<<num4<<")"<<"=";

              

                break;

            case 3:

                cout<<"("<<num1<<"/"<<num2<<")"<<"/"<<"("<<num3<<"/"<<num4<<")"<<"=";

                break;

                     }

                   }

                }

                   cout<<endl;

          }

}

 

截图:

 

      此次的小程序利用了3个都小时的时间,因为我的编程能力不好,有些东西需要重新学习,还多次出现错误,比如最开始明明设置了30次的循环却只能打印出16个,不知道哪里出了错误,也许16是个幸运数字,哈哈。还有能打印真分数就打印不出来加法,能打印加法就打印不出来真分数,后来发现是变量随机数没有设置为小于5,马虎了,耽误不少时间。其中关于时间种子,避免随机数相同的代码是在网上查阅获得的,学习了新知识呦。这么个小程序就用了这么久很是郁闷,希望以后能提高能力与速率完成更大更复杂的程序。

 

转载于:https://www.cnblogs.com/kongyuhang/p/5247738.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值