标签:
个人作业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,马虎了,耽误不少时间。其中关于时间种子,避免随机数相同的代码是在网上查阅获得的,学习了新知识呦。这么个小程序就用了这么久很是郁闷,希望以后能提高能力与速率完成更大更复杂的程序。
标签:
原文地址:http://www.cnblogs.com/kongyuhang/p/5247738.html