随机产生一道包含加减乘除的数学题,并能判断输入结果的正误

如题所述

#include "stdafx.h"
#include<iostream>
#include <string>
using namespace std;
#include<time.h>
int _tmain(int argc, _TCHAR* argv[])
{
//随机产生一道包含加减乘除的数学题, 并能判断输入结果的正误
char ch;
int a, b;
int u; //保存运算法则,1、2、3、4 分别对应 + - * /
float v;
while (1)
{
srand((unsigned int)time(0));
//简便起见,设定 a, b 为 1 到 9
const int D = 1, E = 9;
a = rand() % (E - D + 1) + D;
b = rand() % (E - D + 1) + D;
u = rand() % 4 + 1;
system("cls");
switch (u)
{
case 1:
cout << a << " + " << b << " = ";
cin >> v;
if (v == (float)(a + b))
cout << "\n你真棒!";
else
cout << "\n正确结果是:" << a + b;
break;
case 2:
cout << a << " - " << b << " = ";
cin >> v;
if (v == (float)(a - b))
cout << "\n你真棒!";
else
cout << "\n正确结果是:" << a - b;
break;
case 3:
cout << a << " * " << b << " = ";
cin >> v;
if (v == (float)(a * b))
cout << "\n你真棒!";
else
cout << "\n正确结果是:" << a * b;
break;
case 4:
cout << "除不断就保留 2 位小数\n";
cout << a << " / " << b << " = ";
cin >> v;
if ((int)(v * 100) == (int)(100 * (float)a / (float)b))
cout << "\n你真棒!";
else
cout << "\n正确结果是:" << (float)a / (float)b;
break;
default:
break;
}
cout << "\n请输入“q”退出,其他继续:";
cin >> ch;
if (ch == 'q' || ch == 'Q') return 0;
}

system("pause"); //控制台窗口暂停,不至于闪退
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答