四则运算 2

实验报告

思路:

是否有乘除法、数值范围、加减有无负数、除法有无余数。
利用for循环设置题目的数量,用三个数组分别表示两个随机数和他们之间的四则运算,利用跟之前的题目进行比较,避免出现重复的题目。

利用if语句对参数进行分类,如果有乘除法,四则运算的数组就有四个元素,反之只有两个元素。

命令a是题目的取值范围,通过输入a的值,rand()%a来确定取值范围。

对于加减有无负数,对随机数的数组是否小于零进行判断。用if语句进行选择。

对于除法有无余数,对两组随机数的数组是否进行判断。用if语句进行选择。

打印方式:用for循环来选择一行有几个题目。

代码:

#include<iostream>
#include<cmath>
using namespace std;

void main()
{
 int a[1000],b[1000],c[1000],i,n,x,j,d,f,g,h,k,l,o;
 double e;
 cout<<"输入题的数目(最多1000)"<<endl;
 cin>>n;

 cout<<"输入题目的范围的最大值"<<endl;
 cin>>x;

 cout<<"题目中是否有负数(是就输入1,否就输入2)"<<endl;
 cin>>d;
 if(d==1) e=-1.0;
 else e=1.0;

 cout<<"题目中是否有乘除(是就输入1,否就输入2)"<<endl;
 cin>>f;
 if(f==1)
 {
  g=4;
  cout<<"乘除否有余数(是就输入1,否就输入2)"<<endl;
  cin>>h; if(h==1) k=1;
  else k=2;
 }
 else g=2;

 
 for(i=1;i<=n;i++)
 {
  o=rand()%2+1;
  const int p=pow(e,o);
  
  
  a[i]=p*rand()%x+1;
  
  b[i]=p*rand()%x+1;
  
  c[i]=rand()%g+1;
   
  for(j=1;j<i;j++)//避免重复
  {
   if(a[j]==a[i]&&b[j]==b[i]&&c[j]==c[i])
   {i=i-1;}
  }

  if(c[i]==4&&b[i]==0)//除数不为零
   {i=i-1;}

  if((k==2)&&(c[i]==4)&&(a[i]%b[i]!=0))//能否整除
  {i=i-1;}
 }
 cout<<"请选择输出方式(一行几个题  最多7个)"<<endl;//输出
 cin>>l;
 
  for(i=1;i<=n;i++)
   {
    if(c[i]==1)
    cout<<a[i]<<"+"<<b[i]<<"="<<"   ";
    if(c[i]==2)
    cout<<a[i]<<"-"<<b[i]<<"="<<"   ";
    if(c[i]==3)
    cout<<a[i]<<"*"<<b[i]<<"="<<"   ";
    if(c[i]==4)
    cout<<a[i]<<"/"<<b[i]<<"="<<"   ";
    if(i%l==0)
     cout<<endl;
   }
 
}

 

 

总结:

利用for循环来产生随机数的数目。根据产生100以内随机数的式子a=rand()%100+1和c=rand()%4+1;把100用变量表示可以控制随机数的范围,把4用变量表示可以控制随加减乘除中是否有乘除运算。在rand之前随机产生-1或1来控制是否出现负数。通过%来控制是否有余数。在用for循环中如果遇到不符合条件的随机数,就利用i=i-1来使产生的题目数量不变。

 

日期开始时间终止时间中断时间净时间活动备注
1312:3013:30 一小时编写实验思路 
149:0010:30十分钟1小时30分编程序编写大概的框架可以产生题目并且可以控制是否有乘除
1416:0016:30 30分编程序对题目的范围进行限制
1519:3021:00 1小时30分编程序在程序中加入除法是否有余数
1616:0017:30 1小时30分编程序在程序中加入加入对负数的判断以及输出方式的不同
1810:0010:45 45分编写实验报告 

 

转载于:https://www.cnblogs.com/double1/p/4346538.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值