代码如下:
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { int num1,num2,op,result1,result2; //num1,num2:操作数;op:运算符;result1,result2:结果 do { srand(time(NULL)); num1=rand()*10/(RAND_MAX+1); num2=rand()*10/(RAND_MAX+1); //生成运算数 op=rand()*4/(RAND_MAX+1); //生成运算符 0-- +,1-- -,2-- *,3-- / switch (op) { case 0: cout<<num1<<"+"<<num2<<"=? "; cin>>result1; if (num1+num2 == result1) cout<<"you are right"<<endl; else cout<<"you are wrong"<<endl; break; case 1: cout<<num1<<"-"<<num2<<"=? "; cin>>result1; if (num1-num2 == result1) cout<<"you are right"<<endl; else cout<<"you are wrong"<<endl; break; case 2: cout<<num1<<"*"<<num2<<"=? "; cin>>result1; if (num1*num2 == result1) cout<<"you are right"<<endl; else cout<<"you are wrong"<<endl; break; case 3: cout<<num1<<"/"<<num2<<"=? "; cin>>result1; cout<<"余数为=? "; cin>>result2; if ((num1/num2 == result1)&&(num1%num2==result2)) cout<<"you are right"<<endl; else cout<<"you are wrong"<<endl; break; } }while(1); return 0; }
库cstdlib中含有随机数生成函数。程序的循环内的第一条语句srand(time(NULL))的作用是设置随机数的种子,随机数的生成需要种子,不同的种子可以生成不同1随机数序列。如果用户不设置随机数的种子,系统会指定一个。系统为每个程序、每次执行指定的随机数的种子都是相同的,即在程序中,每次执行出的题目都是相同的。但同时,如果程序员设置的种子是一个固定值,那么程序每次执行的到的随机数序列还是相同的。如果让程序每次执行时选择的种子不一样呢?在一个计算机系统中,时间总是在变。因此把系统时间设为种子是一个很好的想法。time(NULL)就是取当前的系统时间。为了使用时钟,需要包含头文件ctime。
————翁惠玉老师 《C++程序设计思想与方法》
时间: 2024-10-18 08:25:57