四则运算2实验及表格

一、设计思路

1.题目避免重复:比较运算中第一个数,如果相同,下一个数取

2.可定制(数量/打印方式):数量可以从键盘输入,可选择一行输出几题

3.控制参数,由用户进行选择,用户选择(0是,1否),根据选择调用判断

二、代码

#include<iostream.h>
#include<stdlib.h>
int a[200],b[200],k[200];
int i,j,c;
void shuchu(int dy)  //输出题目
{
         if(dy==0)
         {
             if(k[i]==0)
                  cout<<a[i]<<'+'<<b[i]<<'='<<endl;
      if(k[i]==1)
        cout<<a[i]<<'-'<<b[i]<<'='<<endl;
      if(k[i]==2)
        cout<<a[i]<<'*'<<b[i]<<'='<<endl;
      if(k[i]==3)
                 cout<<a[i]<<'/'<<b[i]<<'='<<endl;
    }
     else
        {
      if(k[i]==0)
         cout<<a[i]<<'+'<<b[i]<<'='<<' ';
      if(k[i]==1)
         cout<<a[i]<<'-'<<b[i]<<'='<<' ';
      if(k[i]==2)
         cout<<a[i]<<'*'<<b[i]<<'='<<' ';
      if(k[i]==3)
         cout<<a[i]<<'/'<<b[i]<<'='<<' ';
      if((i+1)%dy==0)
         cout<<endl;
   }
}
void yaoqiu() //对出题的要求询问   

   int cc,fw,zf,ys,ts,dy;
   cout<<"请选择是否有乘除法:(0为是,1为否)"<<endl;
   cin>>cc;
   while(cc!=0&&cc!=1)
   {
      cout<<"输入错误,请重新输入!"<<endl;
      yaoqiu();
     }
     cout<<"请输入取值范围:(输入范围0~x的最大数x)"<<endl;
     cin>>fw;
     while(fw<=0)
     {
        cout<<"输入错误,请输入正整数"<<endl;
        yaoqiu();
     }
     cout<<"请选择加减有无负数:(0为有,1为无)"<<endl;
     cin>>zf;
     while(zf!=0&&zf!=1)
     {
        cout<<"输入错误,请重新输入!"<<endl;
        yaoqiu();
     }
     if(cc==0)
     {
        cout<<"请选择除法有无余数:(0为有,1为无)"<<endl;
        cin>>ys;
        while(ys!=0&&ys!=1)
            {
           cout<<"输入错误,请重新输入!"<<endl;
           yaoqiu();
        }
     }
     cout<<"你想要一次出几道题?"<<endl;
     cin>>ts;
     while(ts<=0)
     {
        cout<<"输入错误,请重新输入!"<<endl;
        yaoqiu();
     }
     cout<<"请选择打印方式:(1为逐行打印,输入其他数字(2,3,4,5...)则为一行有2,3,4,5...道题)"<<endl; 
     cin>>dy;
     while(dy<=0)
     {
        cout<<"输入错误,请重新输入!"<<endl;
        yaoqiu();
     }
     for(i=0;i<ts;i++)
     {
        for(j=0;j<i;j++)// 排重
        {
           if(a[j]==a[i])
            a[i]++;
        }
        a[i]=rand()%fw;
        b[i]=rand()%fw;
        if(cc==0)
        {
           k[i]=rand()%4;
        }
        else
        {
           k[i]=rand()%2;
        }
       if(zf==1)
       {
          if(b[i]>a[i])
          {
             c=b[i];
             b[i]=a[i];
             a[i]=c;
          }
       }
       if(ys==0)
       {
          huchu(dy);
       }
       if(ys!=0)
       {
        if(k[i]==3&&b[i]==0) //除数不能为0
        {
           b[i]++;
        }
        while(a[i]%b[i]!=0)
         b[i]++;
          shuchu(dy);
       }
    }
}
void main()
{
 yaoqiu();
}

三、截图

 四、总结

在实验过程中,输出结果一直出错,花了大量时间才发现是因为大括号放错位置,

这主要在于我以前没养成良好的编程习惯,我一定要吸取这次的教训。

五、计划表

 

原文地址:https://www.cnblogs.com/lsfh/p/4339965.html