C++实现:写一个程序作为一个计算工具,显示两个随机整数相加的结果。要求学生输入答案,判断答案是否正确,如果正确输出结果,如果不正确给出提示,输出正确答案。随机数函数请自行查阅资料

写一个程序作为一个计算工具,显示两个随机整数相加的结果。要求学生输入答案,判断答案是否正确,如果正确输出结果,如果不正确给出提示,输出正确答案。随机数函数请自行查阅资料。

本题目的要求主要是考察对随机数生成的理解。

#include <iostream>
#include <ctime>

using namespace std;

int main(int argc, const char * argv[]) {
    
    
    srand((int)time(0));
    int a,b,sum;
    a = rand()%5;
    b = rand()%5;
    sum = a+b;
    cout<<a<<"    "<<b<<endl;   //这一行代码是用来输出两个随机数的值的,方便检验程序的正确性。
    cout<<"请猜两个5以内的随机数的和为:";
    int guess;//猜的数
    cin>>guess;
    if(guess==sum){
    
    
        cout<<"你猜的数"<<sum<<"正确"<<endl;
    }else{
    
    
        cout<<"你猜的数错误,正确答案是:"<<sum<<endl;
    }
    return 0;
}

输出结果:

说明:

①:#include <ctime>的引用,在本题中删掉代码正常使用。

②:如果将srand((int)time(0));这句的代码删除的话,每一次生成的随机数都是固定的,不会随着每次运行而变化。

计算机没有办法产生真正的随机数的,是用算法模拟,所以你只调用rand,每次出来的东西是一样的。设置一个种子后,根据种子的不同,就可以产生不同的数了。而怎么保证种子的不同呢?最简单的办法当然是用永远在向前的时间。
srand(time(0)) ;//先设置种子
rand();//然后产生随机数
Srand是种下随机种子数,你每回种下的种子不一样,用Rand得到的随机数就不一样。为了每回种下一个不一样的种子,所以就选用Time(0),Time(0)是得到当前时时间值(因为每时每刻时间是不一样的了)。
srand(time(0)) ;
就是给这个算法一个启动种子,也就是算法的随机种子数,有这个数以后才可以产生随机数

猜你喜欢

转载自blog.csdn.net/qq_45696288/article/details/125450688