四则运算小题目解析

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

#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分钟


听歌

时间: 2024-12-29 09:19:07

四则运算小题目解析的相关文章

There&#39;s Treasure Everywhere! poj1473题目解析

题目: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 总时间限制:  1000ms 内存限制:  65536kB 描述 Finding buried treasures is simple: all you need is a map! The pirates in the Caribbean were famous for their enormous buried treasures and their elaborate maps

增量备份,11g052题目解析

增量备份分为差异备份(differential incremental backup)和累积备份(cumulative incremental backup),这是两种执行增量备份操作的不同方法. 80. You perform differential incremental level 1 backups of your database on each working day and level 0 backup on Sundays, to tape. Which two stateme

php小经验:解析preg_match与preg_match_all 函数

php小经验:解析preg_match与preg_match_all 函数 本篇文章是对php中的preg_match函数与preg_match_all函数进行了详细的分析介绍,需要的朋友参考下 正则表达式在 PHP 中的应用在 PHP 应用中,正则表达式主要用于:•正则匹配:根据正则表达式匹配相应的内容•正则替换:根据正则表达式匹配内容并替换•正则分割:根据正则表达式分割字符串在 PHP 中有两类正则表达式函数,一类是 Perl 兼容正则表达式函数,一类是 POSIX 扩展正则表达式函数.二者

考考你!一道有趣的Javascript小题目

今天的内容很简单,给大家分享一个有趣的Javascript小题目. 题目很简单,就是填空: var a = ______; var b = a;alert(a==b); // alert "false" 请将程序补充完整,使得弹出的对话框显示为"false". 先答出的有奖哦 ^ ^ --------------------- 用简单而风趣的形式表达出自己的想法是我一直追求的目标(当然,目前还处于"XX主义初级阶段",还有很长的路要走). 如果你

微信小程序解析html

1.下载wxParse:https://github.com/icindy/wxParse并拷贝到项目目录下与pages同级即可2.在app.wxss全局样式头部引入wxParse.wxss2.在需要解析html的js头部引入wxParse.js并加载数据,如: var WxParse = require('../../../wxParse/wxParse.js'); Page({ onLoad: function (options) { that.setData({ content: WxPa

300道随机四则运算小程序(java编写)

这是由Java编写的300道随机四则运算小程序, 运算数范围为0~100(不包括100),运算结果保留两位小数. 程序代码: import java.util.*; class Yunsuan{ public static void main(String[] args){ Random rand = new Random(); for(int i = 0; i < 300; i++){ int num1 = (int)(rand.nextDouble() * 100); int num2 =

java 数组小题目

好久好久都没有搞过数组了,今天有个小题目.贴出来打发时间.(老黄牛在天上--)哈哈,不开玩笑啦. ---------看这道题主要是个排序,然后是筛选数组元素.废话不多说,直接贴代码,大神勿喷 ⊙﹏⊙|∣ -------控制台打印结果如下所示: 原文地址:http://blog.51cto.com/12237592/2105000

部分单调队列优化 DP 题目解析

这里专门放一些单调队列优化 DP 的题目,并加上简要解析. Luogu P1725 琪露诺 易得转移方程为 $$f_i=\max_{j\,=\,\max(i-R,\;0)}^{i-L}f{_ j}+a_i\;(L \le i \le n)$$ 那么,其中 $\max$ 部分可以看成一段区间的最大值,用单调队列维护. 然后答案是 $$\max_{i\,=\,n-r+1}^{n} f_i$$ 时间复杂度 $O(n)$. 部分单调队列优化 DP 题目解析 原文地址:https://www.cnblog

小学生四则运算小项目

我写这个小项目,是在一个小程序上改的,这个小项目的网址为http://www.cnblogs.com/ys1101/p/4368103.htm,在上面的代码上实现的功能不完整,并没有完成课本上的要求.在他的代码上我增加了语言选择,这里只是有英文和中文的选择.还有原来的代码并没有实现真分数的四则运算,在此基础上我在菜单栏上新添加了真分数的四则运算,还有对其菜单栏进行了优化,使得界面更好看.写好后我将此项目放入了我的Github上网址为:https://github.com/HAIWWH/WWH,希