题目
c++求解,一道关于计算机随机产生10道四则运算题
通过计算机随机产生10道四则运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数.
使用子函数实现两个数相加的测试.此函数的输入参数是两个加数,返回值是用户运算的正确与否(用1或者0表示).在此函数中首先读入用户输入的加法结果,并与正确结果进行比较.
int AddTest(int a, int b) ;
通过计算机随机产生10道四则运算题,两个操作数为1~10之间的随机数,运算类型为随机产生的加、减、乘、整除中的任意一种,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分,然后打印出总分和做错题数.
使用子函数实现两个数相加的测试.此函数的输入参数是两个加数,返回值是用户运算的正确与否(用1或者0表示).在此函数中首先读入用户输入的加法结果,并与正确结果进行比较.
int AddTest(int a, int b) ;
提问时间:2021-02-25
答案
#include
#include
#include
#include
using std::cin;
using std::cout;
using std::endl;
//计算式 数量
int const Num = 10;
//计算式中 最大数
int const MaxNum = 10;
enum enOp{Add,Subtract,Multiply,Divide};
//加法
int addFun(int left,int right)
{
return left + right;
}
//减法
int subFun(int left,int right)
{
return left - right;
}
//乘法
int mulFun(int left,int right)
{
return left * right;
}
//除法
int divFun(int left,int right)
{
return left / right;
}
//将 枚举类型转换为字符类型,以便输出.
char enum2char(enOp op)
{
switch (op)
{
case Add:
return '+';
case Subtract:
return '-';
case Multiply:
return 'x';
case Divide:
return '/';
}
return ' ';
}
//计算生成表达式的正确结果.
int myResult(int left,int right,enOp op)
{
switch (op)
{
case Add:
return addFun(left ,right);
case Subtract:
return subFun(left ,right);
case Multiply:
return mulFun(left ,right);
case Divide:
return divFun(left ,right);
}
return 0;
}
//检查生成计算式的正确与否.其中 减法结果不能为负数,除法结果不能为小数.
bool checkFormula(int left,int right,enOp op)
{
switch (op)
{
case Add:
return true;
case Subtract:
{
if(left < right)
return false;
return true;
}
case Multiply:
return true;
case Divide:
{
if(double(left/right) != double(double(left)/double(right)))
return false;
return true;
}
}
return false;
}
//依据给定操作符,生成符合条件的表达式.
void getFormula(int* left,int*right,enOp op)
{
//srand(time(NULL));
for(;;)
{
*left = 1 + rand() % MaxNum;
*right = 1 + rand() % MaxNum;
if(checkFormula(*left,*right,op))
break;
}
}
int main()
{
//操作符左值
int left[Num];
//操作符右值
int right[Num];
//用户输入计算结果
int result[Num];
//操作符 +-*/
enOp oper[Num];
//正确答案个数
int answerRight = 0;
cout
#include
#include
#include
using std::cin;
using std::cout;
using std::endl;
//计算式 数量
int const Num = 10;
//计算式中 最大数
int const MaxNum = 10;
enum enOp{Add,Subtract,Multiply,Divide};
//加法
int addFun(int left,int right)
{
return left + right;
}
//减法
int subFun(int left,int right)
{
return left - right;
}
//乘法
int mulFun(int left,int right)
{
return left * right;
}
//除法
int divFun(int left,int right)
{
return left / right;
}
//将 枚举类型转换为字符类型,以便输出.
char enum2char(enOp op)
{
switch (op)
{
case Add:
return '+';
case Subtract:
return '-';
case Multiply:
return 'x';
case Divide:
return '/';
}
return ' ';
}
//计算生成表达式的正确结果.
int myResult(int left,int right,enOp op)
{
switch (op)
{
case Add:
return addFun(left ,right);
case Subtract:
return subFun(left ,right);
case Multiply:
return mulFun(left ,right);
case Divide:
return divFun(left ,right);
}
return 0;
}
//检查生成计算式的正确与否.其中 减法结果不能为负数,除法结果不能为小数.
bool checkFormula(int left,int right,enOp op)
{
switch (op)
{
case Add:
return true;
case Subtract:
{
if(left < right)
return false;
return true;
}
case Multiply:
return true;
case Divide:
{
if(double(left/right) != double(double(left)/double(right)))
return false;
return true;
}
}
return false;
}
//依据给定操作符,生成符合条件的表达式.
void getFormula(int* left,int*right,enOp op)
{
//srand(time(NULL));
for(;;)
{
*left = 1 + rand() % MaxNum;
*right = 1 + rand() % MaxNum;
if(checkFormula(*left,*right,op))
break;
}
}
int main()
{
//操作符左值
int left[Num];
//操作符右值
int right[Num];
//用户输入计算结果
int result[Num];
//操作符 +-*/
enOp oper[Num];
//正确答案个数
int answerRight = 0;
cout
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
- 1蚕卵什么时候才能孵化出来?卵要变成什么颜色?
- 21、x*(x+3)*(x+6)*(x+9)=68040 2、x*(x+1)*(x+2)*(x+3)*(x+4)=55440
- 3人的本质属性是什么?A社会 B业缘 C自然
- 4求一元三次方程的解
- 5一种药水是用药物和水按3:400配制成的. (1)要配制这种药水1612千克,需要药粉多少千克? (2)用水60千克,需要药粉多少千克? (3)用48千克药粉,可配制成多少千克的药水?
- 6若一个人在注满水的水管的一端用石头敲击,一人在另一边他可以听到几次声音
- 7一条线段将一个边长8cm的正方形分割成一个三角形和一个梯形.梯形面积比三角形面积多40平方分米,求三角形最短的边长
- 8(4)如图4,AP,BP分别平分∠CAM,∠CBD,直接写出∠P与∠C,∠D的关系,不必说明理由.
- 9有糖果a粒,若分给9个小孩,则余8粒;若分给11个小孩,则欠1粒;若分给3个小孩,则余2粒;问a最少是多少?
- 10最是什么词性
热门考点