码迷,mamicode.com
首页 > 其他好文 > 详细

四则运算小题目解析

时间:2015-03-19 21:44:32      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

小题目四则运算下面是源代码

 

#include <iostream> using namespace std;

void main() {  int X0[1000],Y0[1000],Z0[1000],X1[1000],Y1[1000],Z1[1000],X2[1000],Y2[1000],Z2[1000],X3[1000],Y3[1000],Z3[1000],A[1000],a,b,c;  int i,j,A0,A1,A2,A3,B0,B1,B2,B3;  int number1,number2,k;  int m,n;  int x,y,z;  k=0;  A0=0;A1=0;A2=0;A3=0;  B0=0;B1=0;B2=0;B3=0;  cout<<"四则运算小题目"<<endl;  cout<<endl;    cout<<"请输入运算题目的数量和每行显示的题目数量:"<<endl;  cin>>number1>>number2;    cout<<"是否包含乘除法?是输入1,否请输入0"<<endl;  cin>>x;    cout<<"是否包含加减结果有负数?是请输入1,否请输入0"<<endl;  cin>>y;    cout<<"是否除法结果有余数?是请输入1,无请输入0"<<endl;  cin>>z;  cout<<"请输入两个值确定算式中参数的取值范围(前一个参数小于后一个参数):"<<endl;  cin>>m>>n;  for(i=0;i<1000;i++)  {   X0[i]=0;Y0[i]=0;   X1[i]=0;Y1[i]=0;   X2[i]=0;Y2[i]=0;   X3[i]=0;Y3[i]=0;  }  for(i=0;;i++)  {   a=m+rand()%(n-m);   b=m+rand()%(n-m);   c=rand()%4;   if(x==0)                {    if(c==2||c==3)     continue;   }   if(y==0)                {    if(c==0)    {     if(a+b<0)      continue;    }    else if(c==1)    {     if(a-b<0)      continue;    }   }   if(z==0)              {    if(c==3)     if(0 != a%b)      continue;   }   if(c==0)                        {    for(j=0;j<=A0;j++)    {     if(a==X0[j]&&b==Y0[j])     {      B0++;break;     }    }    if(B0>0)    {     B0=0;continue;    }    else    {     X0[A0]=a;     Y0[A0]=b;     Z0[A0]=a+b;     A0++;    }   }   else if(c==1)                    {    for(j=0;j<=A1;j++)    {     if(a==X1[j]&&b==Y1[j])     {      B1++;break;     }    }    if(B1>0)    {     B1=0;continue;    }    else    {     X1[A1]=a;     Y1[A1]=b;     Z1[A1]=a+b;     A1++;    }   }   else if(c==2)                       {    for(j=0;j<=A2;j++)    {     if(a==X2[j]&&b==Y2[j])     {      B2++;break;     }    }    if(B2>0)    {     B2=0;continue;    }    else    {     X2[A2]=a;     Y2[A2]=b;     Z2[A2]=a+b;     A2++;    }   }   else                                 {    if(b==0)     continue;    for(j=0;j<=A3;j++)    {     if(a==X3[j]&&b==Y3[j])     {      B3++;break;     }    }    if(B3>0)    {     B3=0;continue;    }    else    {     X3[A3]=a;     Y3[A3]=b;     Z3[A3]=a+b;     A3++;    }   }   if(number1==A0+A1+A2+A3)                   break;  }  for(i=0;i<A0;i++)                         {   k++;   if(X0[i]<0)    cout<<"("<<X0[i]<<")";   else    cout<<X0[i]<<" ";   cout<<"+";   if(Y0[i]<0)    cout<<"("<<Y0[i]<<")";   else    cout<<" "<<Y0[i]<<" ";   cout<<"=";   if(k%number2==0)    cout<<endl;   else    cout<<"\t";  }     for(i=0;i<A1;i++)                          {   k++;   if(X1[i]<0)    cout<<"("<<X1[i]<<")";   else    cout<<X1[i]<<" ";   cout<<"-";   if(Y1[i]<0)    cout<<"("<<Y1[i]<<")";   else    cout<<" "<<Y1[i]<<" ";   cout<<"=";   if(k%number2==0)    cout<<endl;   else    cout<<"\t";  }  for(i=0;i<A2;i++)                          {   k++;   if(X2[i]<0)    cout<<"("<<X2[i]<<")";   else    cout<<X2[i]<<" ";   cout<<"*";   if(Y2[i]<0)    cout<<"("<<Y2[i]<<")";   else    cout<<" "<<Y2[i]<<" ";   cout<<"=";   if(k%number2==0)    cout<<endl;   else    cout<<"\t";  }     for(i=0;i<A3;i++)                          {   k++;   if(X3[i]<0)    cout<<"("<<X3[i]<<")";   else    cout<<X3[i]<<" ";   cout<<"/";   if(Y3[i]<0)    cout<<"("<<Y3[i]<<")";   else    cout<<" "<<Y3[i]<<" ";   cout<<"=";   if(k%number2==0)    cout<<endl;   else    cout<<"\t";  }  cout<<"请在此输入各式的结果:"<<endl;  for(i=0;i<number1;i++)   cin>>A[i];  int t=0,corr=0;  for(i=0;i<A0;i++)  {   if(Z0[i]==A[t])   {t++;corr++;}   else   {    t++;    cout<<"第"<<t<<"题答错!"<<endl;   }  }  for(i=0;i<A1;i++)  {   if(Z1[i]==A[t])   {t++;corr++;}   else   {    t++;    cout<<"第"<<t<<"题答错!"<<endl;   }  }  for(i=0;i<A2;i++)  {   if(Z2[i]==A[t])   {t++;corr++;}   else   {    t++;    cout<<"第"<<t<<"题答错!"<<endl;   }  }  for(i=0;i<A3;i++)  {   if(Z3[i]==A[t])   {t++;corr++;}   else   {    t++;    cout<<"第"<<t<<"题答错!"<<endl;   }  }  if(number2==corr)   cout<<"恭喜你都答对了!!!!!!"<<endl; }

 

技术分享

 

刚开始的时候拿到这个题目有点思路,感觉不是太清晰,其实真正的列出详细的思路没有那么难,一点一点的变下来感觉思路很清晰。

这个程序和上次的程序比起来,只是多了一些对于题目的要求,其实这些用以前学到的知识完全可以解决,所以我感觉只要自己感去边就肯定没有问题,对于产生随机数和符号就不作详细解释了,接下来我对于其中的题目要求解释一下。

 

首先是可以定制,每行有几个题目以及每行有几个题目,可以利用循环来完成。

对于重复的题目,首先生成数组,产生随机数依次输入到数组之内,之前有一个随机数的比较,所以进入到数组之内的数字不会是重复的,其他的就没有什么特别的思路了,感觉和以前的c++差不多。

 

 

学生:刘建                         日期:2015.3  

教师:王建民                            课程:软件工程

日期

开始时间

结束时间

中断时间

净时间

活动

备注

3/18

上午10点

11点半

半个小时

 

听会歌,玩会游戏

晚上上自习

3/19

下午4点半

下午六点半

20分钟

 

听歌

 

 

 

四则运算小题目解析

标签:

原文地址:http://www.cnblogs.com/jump/p/4351511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!