注意10以内的随机数是如何生成的。另一种方法,rand()%10,结果也为0~9之间的数
RAND_MAX是一个符号常量,定义在cstdlib中。在visual c++中,它的值为32767.
rand()每次调用会生成一个0~RAND_MAX整数
1 //计算机四则运算,10以内
2 #include <iostream>
3 #include<cstdlib>
4 #include<ctime>
5 using namespace std;
6
7 int main()
8 {
9 int num1, num2, op, result1, result2;
10
11 srand(time(NULL)); //随机数种子初始化,注意是以电脑时间为种子
12 num1 = rand() * 10 / (RAND_MAX + 1); //将0~RAND_MAX之间的整数等分成10份,如果落在第一份,则映射成0;落在第二份,则映射成1;。。。。。
13 num2 = rand() * 10 / (RAND_MAX + 1);
14 op = rand() * 4 / (RAND_MAX + 1); //道理同上,生成运算符:+-*/,0123
15
16 switch (op)
17 {
18 case 0:cout << num1 << "+" << num2 << "=?";
19 cin >> result1;
20 if (num1 + num2 == result1)
21 cout << "right\n";
22 else cout << "wrong";
23 break;
24 case 1:cout << num1 << "-" << num2 << "=?";
25 cin >> result1;
26 if (num1 - num2 == result1)
27 cout << "right\n";
28 else cout << "wrong";
29 break;
30 case 2:cout << num1 << "*" << num2 << "=?";
31 cin >> result1;
32 if (num1 * num2 == result1)
33 cout << "right\n";
34 else cout << "wrong";
35 break;
36 case 3:cout << num1 << "/" << num2 << "=?";
37 cin >> result1;
38 cout << "余数为?:";
39 cin >> result2;
40 if ((num1 / num2 == result1)&&(num1%num2==result2))
41 cout << "right\n";
42 else cout << "wrong";
43 break;
44 default:
45 break;
46 }
47
48 cin.ignore();
49 cin.get();
50 return 0;
51
52 }