在编写程序时,我们经常使用到随机数,我们在java中是通过Random对象的next产生一个随机数,下面我们说说在C++中,随机数的使用问题。
先看一段代码:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int a, b, c, s = 0;
// srand((unsigned)time(NULL));
for(int i = 1; i <= 10; i++) {
b = rand() % 100;
c = rand() % 100;
cout<<"第"<<i<<"题:"<<endl;
cout<<b<<" + "<<c<<" = "<< endl;
cin>>a;
if( (b + c) == a) {
s += 10;
}
}
cout<<"你的得分是: "<<s<<endl;
return 0;
}
这段代码是一个自动的出题器,当然是小学生的100内的加减法,我们每次运行,题目随机产生的,但是,为什么每次运行都是相同的随机题目呢?
这是因为随机数的产生规则是由随机种子决定的,我们如果每次使用不同的随即种子,就可以产生不同的题目了。
把注释掉的
srand((unsigned)time(NULL))加入就可以了,这样,每次都是用不同的种子,每次的题目也不同了,真正的做到了随机!
这样,你可以拿着这个出题器去考考你的弟弟妹妹了,哈哈哈