四则运算2

一、实验思想

    1.题目避免重复

       先输出第一组,输出第二组时每个数与第一组的数字依次进行对比,第三组的时候与第一二组进行比较,以此类推

    2.打印方式

       控制每行有多少组,然后换行

    3.函数式要求

       判断有无乘法、余数、负数,范围

二、实验源代码


#include<iostream.h>
#include<stdlib.h>
int main()

   int  num,fanwei,mul,fushu,yushu,num1;
   int  a[100],b[100],c[4],temp,i,j,k;
   cout<<"请输入题目数量:";
   cin>>num;
   cout<<"请输入题目中数值范围:";
   cin>>fanwei;
   cout<<"是否有乘除法(1表示有,其余表示没有):";
   cin>>mul;
   cout<<"是否允许减法结果为负数(1表示允许,其余表示不允许):";
   cin>>fushu;
   cout<<"除法结果有无余数(1表示允许,其余表示不允许):";
   cin>>yushu;
   cout<<"一行输出几道题目(不大于6道):";
   cin>>k;
   while(k<=0||k>6)
   {
      cout<<"注意输入要求:";
      cin>>k;
   }
   for(i=0;i<num;i++)  //进行 题目数量 次循环
   {
      a[100]=rand()%fanwei;  //控制数值范围
      b[100]=rand()%fanwei;
      if(mul==1)    //控制有无乘除法
       c[4]=rand()%4;    //根据c[4]的值随机出现四则运算
      else
       c[4]=rand()%2;
      if(c[4]==0)
      {
       cout<<a[100]<<"+"<<b[100]<<"=   ";
      } 
      if(c[4]==1)
      {  
         if(fushu != 1)
         {
          temp=a[100];
          a[100]=b[100];
          b[100]=temp;
          cout<<a[100]<<"+"<<b[100]<<"=   ";
         }
         else
         {
            cout<<a[100]<<"-"<<b[100]<<"=   ";
         }            
      } 
      if(c[4]==2)
      {
         while((yushu != 1)&&(a[100]%b[100] != 0));
         {
            a[100]=rand()%fanwei; 
         }
         cout<<a[100]<<"/"<<b[100]<<"=   ";      
      }   
      if(c[4]==3)
      {   
         cout<<a[100]<<"*"<<b[100]<<"=   ";    
      }
      if((i+1)%k==0)
       cout<<endl;
      for(j=0;j<i;j++)       //判断题目是否重复,若重复则a[i]++
       if(a[j]==a[i]&&b[j]==b[i]&&c[j]==c[i])    
        a[i]++;
   }
   return 0;
}

三、实验结果截图

四、编不出来的原因

     1.对C++语言中部分程序设计方法不熟悉;

     2.对关键词的定义不熟悉,出现了好几个部分用一个变量的情况;

     3.了解C与C++代码的不同;

     4.多编多练

原文地址:https://www.cnblogs.com/yue3475975/p/4339901.html