四则运算题2

本题新学知识点:

itoa函数

char *itoa( int value, char *string,int radix);[1] 
原型说明:
value欲转换的数据。
string:目标字符串的地址。
radix:转换后的进制数,可以是10进制、16进制等。
程序实例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
    int number = 12345;
    char string[32];
    itoa(number, string, 10);
    printf("integer = %d string = %s\n", number, string);
    return 0;
}
  1 /*
  2 设计思路:
  3 1.判断是否有乘除法
  4 2.规定数值范围:通过random乘数值
  5 3.加减有无负数:两个数值随机产生符号
  6 4.除法有无余数:
  7 */
  8 
  9 #include<iostream>
 10 #include<time.h>
 11 #include<string>
 12 # include <stdio.h>
 13 #include<stdlib.h>
 14 #include<iomanip>
 15 #include<cmath>  
 16 using namespace std;
 17 
 18 //1.乘除法
 19 int chengchu()
 20 {
 21     char X;
 22     cout << "请选择要产生几以内的四则运算:(10 or 100)";
 23     int range;
 24     cin >> range;
 25 
 26     cout << "1.是否需要乘除法运算?(Y or N)\n";
 27     cin >> X;
 28 
 29     if (X == 'Y')
 30     {
 31 
 32         for (int count = 0; count < 5; count++)
 33         {
 34             int a = 0, b = 0;
 35 
 36             a = rand() % range;
 37             b = rand() % range ;
 38 
 39             //随机产生四则运算符
 40             int sign = 0;
 41             sign = (rand() % 100) % 2;
 42             string opera_sign[2] = { "*", "/" };
 43 
 44             //当b=0且运算为除法时重新生成
 45             while ((b == 0) & (sign == 1))
 46             {
 47                 b = rand() % range;
 48             }
 49 
 50             switch (sign)
 51             {
 52             case 0:cout << a << opera_sign[sign] << b << "=" << endl; break;
 53             case 1:cout << a << opera_sign[sign] << b << "=" << endl; break;
 54             }
 55         }
 56     }
 57     if (X == 'N')
 58     {
 59 
 60         for (int count = 0; count < 5; count++)
 61         {
 62             int a = 0, b = 0;
 63 
 64             a = rand() % range;
 65             b = rand() % range;
 66 
 67             //随机产生四则运算符
 68             int sign = 0;
 69             sign = (rand() % 100) % 2;
 70             string opera_sign[2] = { "+", "-" };
 71 
 72             switch (sign)
 73             {
 74             case 0:cout << a << opera_sign[sign] << b << "=" << endl; break;
 75             case 1:cout << a << opera_sign[sign] << b << "=" << endl; break;
 76             }
 77         }
 78     }
 79     return 0;
 80 }
 81 
 82 //2.包含真分数
 83 int fenshu()
 84 {
 85     char Z;
 86     cout << "2.是否包含真分数?(Y or N)\n";
 87     cin >> Z;
 88     if (Z == 'Y')
 89     {
 90         for (int count = 0; count < 5; count++)
 91         {
 92             int a1 = 0, b1 = 0, a2 = 0, b2 = 0;
 93 
 94             a1 = rand() % 100;
 95             b1 = rand() % 100;
 96             a2 = rand() % 100;
 97             b2 = rand() % 100;
 98 
 99             //判断是否为真分数
100             while (a1>b1 || b1 == 0)
101             {
102                 a1 = rand() % 100;
103                 b1 = rand() % 100;
104             }
105 
106             while (a2 > b2 || b2 == 0)
107             {
108                 a2 = rand() % 100;
109                 b2 = rand() % 100;
110             }
111 
112             //随机产生四则运算符
113             int sign = 0;
114             sign = (rand() % 100) % 4;
115             string opera_sign[4] = { "+", "-", "*", "/" };
116 
117             switch (sign)
118             {
119             case 0:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
120             case 1:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
121             case 2:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
122             case 3:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
123             }
124         }
125     }
126     if (Z == 'N')
127     {
128         for (int count = 0; count < 5; count++)
129         {
130             int a1 = 0, b1 = 0, a2 = 0, b2 = 0;
131 
132             a1 = rand() % 100;
133             b1 = rand() % 100;
134             a2 = rand() % 100;
135             b2 = rand() % 100;
136 
137             //分母不可为0
138             while (b1 == 0)
139             {
140                 b1 = rand() % 100;
141             }
142             while (b2 == 0)
143             {
144                 b2 = rand() % 100;
145             }
146 
147             //随机产生四则运算符
148             int sign = 0;
149             sign = (rand() % 100) % 4;
150             string opera_sign[4] = { "+", "-", "*", "/" };
151 
152             switch (sign)
153             {
154             case 0:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
155             case 1:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
156             case 2:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
157             case 3:cout << "(" << a1 << "/" << b1 << ")" << opera_sign[sign] << "(" << a2 << "/" << b2 << ")" << "=" << endl; break;
158             }
159         }
160     }
161     return 0;
162 }
163 
164 //把数字转换成字符串型
165 string int_string(int number)
166 {
167     char str1[200];
168     itoa(number, str1, 10);
169     string str_ = str1;
170     return str_;
171 }
172 
173 int kuohao()
174 {
175     char K;
176     cout << "3.是否包含括号?(Y or N)\n";
177     cin >> K;
178     if (K == 'Y')
179     {
180         string stri[4];
181         for (int i = 0; i < 4; i++)
182         {
183             int a = 0, b = 0;
184             a = rand() % 100;
185             b = rand() % 100;
186 
187             int sign = 0;
188             sign = (rand() % 100) % 4;
189             string opera_sign[4] = { "+", "-", "*", "/" };
190 
191             //当b=0且运算为除法时重新生成
192             while ((b == 0) & (sign == 3))
193             {
194                 b = rand() % 100;
195             }
196             string str,ch1, ch2;
197 
198             ch1 = int_string(a);
199             ch2 = int_string(b);
200             //string stri[4];
201 
202             switch (sign)
203             {
204             case 0:
205             {
206                       str = "(" + ch1 + opera_sign[sign] + ch2 + ")";
207             } break;
208 
209             case 1:
210             {
211                       str = "(" + ch1 + opera_sign[sign] + ch2 + ")";
212             }break;
213 
214             case 2:
215             {
216                       str = "(" + ch1 + opera_sign[sign] + ch2 + ")";
217             } break;
218 
219             case 3:
220             {
221                       str = "(" + ch1 + opera_sign[sign] + ch2 + ")";
222             }break;
223             }
224             stri[i]= str;
225         }
226 
227         string str5;
228     //    str5 = "((" + stri[0] + stri[1] + ")" +stri[2] + ")" + stri[3];
229         cout << "((" <<stri[0] <<"+"<<stri[1] << ")*"<<stri[2] <<")" <<"/"<< stri[3];
230         }
231         
232     else
233     {
234         cout << endl;
235     }
236        
237 
238 }
239 //主函数
240 int main()
241 {
242     //以现在的系统时间作为随机数的种子来产生随机数
243     srand(time(NULL));
244     cout << "请您选择四则运算题的条件:\n";
245     int result1 = chengchu();
246     int result2 = fenshu();
247     int result3 = kuohao();
248     return 0;
249 }

转载于:https://www.cnblogs.com/X-knight/p/5269542.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++调用Libsvm

libSVM中的readme中文版&#xff1a;http://blog.csdn.net/carson2005/article/details/6539192 LibSVM的package中的Readme文件中介绍了怎样具体的使用LibSvm&#xff0c;可以在Dos下以命令形式进行调用&#xff0c;也可以用程序包中提供的GUI程序Svm-toy进行图形化的操作。sv…

STL -set

转载自&#xff1a;http://blog.csdn.net/LYHVOYAGE/article/details/22989659 set集合容器实现了红黑树&#xff08;Red-Black Tree&#xff09;的平衡二叉检索树的的数据结构&#xff0c; 在插入元素时&#xff0c;它会自动调整二叉树的排列&#xff0c;把该元素放到适当的位…

【机器学习实战之一】:C++实现K-近邻算法KNN

本文不对KNN算法做过多的理论上的解释&#xff0c;主要是针对问题&#xff0c;进行算法的设计和代码的注解。 KNN算法&#xff1a; 优点&#xff1a;精度高、对异常值不敏感、无数据输入假定。 缺点&#xff1a;计算复杂度高、空间复杂度高。 适用数据范围&#xff1a;数值…

javascript设计模式-继承

javascript继承分为两种&#xff1a;类式继承&#xff08;原型链、extend函数&#xff09;、原型式继承&#xff08;对继承而来的成员的读和写的不对等性、clone函数&#xff09;。 类式继承-->prototype继承&#xff1a; 1 function Person(name){2 this.name …

GIS基础软件及操作(二)

原文 GIS基础软件及操作(二) 练习二、管理地理空间数据库 1.利用ArcCatalog 管理地理空间数据库 2.在ArcMap中编辑属性数据 第1步 启动 ArcCatalog 打开一个地理数据库 当 ArcCatalog打开后&#xff0c;点击, 按钮&#xff08;连接到文件夹&#xff09;. 建立到包含练习数据的…

libSVM分类小例C++

from&#xff1a;http://www.doczj.com/list_31/ 使用libSVM求解分类问题的C小例 1.libSVM简介 训练模型的结构体 struct svm_problem//储存参加计算的所有样本 { int l; //记录样本总数 double *y; //指向样本类别的组数 //prob.y new double[prob.l]; struct svm_node …

qunit 前端脚本测试用例

首先引用qunit 测试框架文件 <link rel"stylesheet" href"qunit-1.22.0.css"> <script src"qunit-1.22.0.js"></script> <div id"qunit"></div> <div id"qunit-fixture"></div>…

非常规文件名删除

生活中我们偶尔会遇到这样一件事&#xff1a;走在路上&#xff0c;突然感觉鞋底有东西&#xff0c;抬脚一看&#xff0c;是个泡泡糖。拿不掉&#xff0c;走路还一粘一粘的。要多难受有多难受&#xff01;同样在linux中也有这么一种文件名。看着不舒服&#xff0c;却删不掉。今天…

Machine Learning(Stanford)| 斯坦福大学机(吴恩达)器学习笔记【汇总】

from&#xff1a;https://blog.csdn.net/m399498400/article/details/52556168 定义本课程常用符号 训练数据&#xff1a;机器用来学习的数据 测试数据&#xff1a;用来考察机器学习效果的数据&#xff0c;相当于考试。 m 训练样本的数量&#xff08;训练集的个数) x 输入的…

模板匹配算法

from&#xff1a;https://blog.csdn.net/zhi_neng_zhi_fu/article/details/51029864 模板匹配(Template Matching)算法 模板匹配&#xff08;Template Matching&#xff09;是图像识别中最具代表性的方法之一。它从待识别图像中提取若干特征向量与模板对应的特征向量进行比较…

立体匹配十大概念综述---立体匹配算法介绍

from&#xff1a;https://blog.csdn.net/wintergeng/article/details/51049596 一、概念 立体匹配算法主要是通过建立一个能量代价函数&#xff0c;通过此能量代价函数最小化来估计像素点视差值。立体匹配算法的实质就是一个最优化求解问题&#xff0c;通过建立合理的能量函数…

zjnu1730 PIRAMIDA(字符串,模拟)

Description Sample Input 6 JANJETINA 5 1 J 1 A 6 N 6 I 5 E Sample Output 1 0 2 1 1题意&#xff1a;给你一个长度小于等于10^6的字符串&#xff0c;然后每次让它循环铺盖&#xff0c;构成层数为n的塔&#xff0c;让你求得第i层塔中某个字符的个数。 思路&#xff1a;首先要…

ICP算法理解

from&#xff1a;https://blog.csdn.net/linear_luo/article/details/52576082 1 经典ICP ICP的目的很简单&#xff0c;就是求解两堆点云之间的变换关系。怎么做呢&#xff1f;思路很自然&#xff0c;既然不知道R和t(针对刚体运动)&#xff0c;那我们就假设为未知量呗&#xf…

图像处理的灰度化和二值化

from&#xff1a;http://blog.sina.com.cn/s/blog_13c6397540102wqtt.html 在图像处理中&#xff0c;用RGB三个分量&#xff08;R&#xff1a;Red&#xff0c;G&#xff1a;Green&#xff0c;B&#xff1a;Blue&#xff09;&#xff0c;即红、绿、蓝三原色来表示真彩色&#x…

获取子元素

1、纯css 获取子元素 #test1>div {background-color:red;}#test1 div {font-size:14px;}#test1>div:first-child {color:#ccc;} <div id"test1"><div>性别</div><div>男</div></div> 因1示例中为#test1下的子元素 #test1…

44.Android之Shape设置虚线、圆角和渐变学习

Shape在Android中设定各种形状&#xff0c;今天记录下&#xff0c;由于比较简单直接贴代码。 Shape子属性简单说明一下:   gradient -- 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle是指从哪个角度开始变.solid -- 填充。stroke -- 描边。corners -- 圆角…

几种边缘检测算子的比较Roberts,Sobel,Prewitt,LOG,Canny

from&#xff1a;https://blog.csdn.net/gdut2015go/article/details/46779251 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。这些包括&#xff1a;深度上的…

django 初试

/*************************************************************************************** django 初试* 说明&#xff1a;* 昨天打搭了dgango的服务器&#xff0c;今天学一下怎么来输出一个hello world出来。* * …

浅析“高斯白噪声”,“泊松噪声”,“椒盐噪声”的区别

from&#xff1a;https://www.jianshu.com/p/67f909f3d0ce 在图像处理的过程中&#xff0c;一般情况下都进行图像增强&#xff0c;图像增强主要包括“空域增强”和“频域增强”&#xff0c; 空域增强包括平滑滤波和锐化滤波。 平滑滤波&#xff0c;就是将图像模糊处理&#x…

Java 开发环境部署

1.下载Java开发环境工具包JDK&#xff0c;下载地址&#xff1a;http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载后&#xff0c;双击jdk应用程序&#xff0c;根据提示完成安装&#xff0c;安装过程中可以自定义安装目录等信息&#xff0c;这里我选择…