C++ 语言 生成一个0~100的随机数

使用 while 或者 do-while的结构

必须是C++语言 题目如下
生成一个0~100以内的随机数,让用户猜,若用户输入的数大于该随机数,输出“Your number is bigger than my number! Guess again”;若用户输入的数小于该随机数,输出“Your number is smaller than my number! Guess again!”;直到用户输入的值等于该随机数为止,输出“That is it!”

一、C++获取随机数的方法

rand()方法是C++获取随机数的方法,可以通过srand()方法获取系统的时间,用系统时间作为判断依据,生成随机数,随机数的大小通过rand()方法获取的值,进行取余后获得。也就是说,srand方法获取到了系统的时间,他是毫秒级的,然后通过这个毫秒级的数据,对100取余,即可获得0-100的随机数,如果是1-100的随机数,可以在运算结果加1来实现。

二、实现代码

#include <iostream.h>
int main(int argc, char *argv[])
{
int number = 0; //随机数 
int input = 0; //记录用户输入的数字
 
srand(unsigned(time(0))); //获取系统时间 
number = rand()%100; //生成随机数 

cout<<"Please guess the number (0-100):" ; //输入提示语句 
cin>>input; //接收用户输入 

while(number != input){ //猜数字环节 
if(input < number){ //用户输入比随机数小 
            cout<<"Your number is smaller than my number! Guess again!"<<endl;
   }else{  //用户输入比随机数大 
            cout<<"Your number is bigger than my number! Guess again"<<endl;
     } 
        cin>>input; //接收用户输入 
}

cout<<"That is it!"<<endl; //答对提示 

return 0;
}

运行结果:

注:猜数字使用2分法速度最快。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-21
#include <iostream>
#include <stdlib.h>
#include <time.h>

using namespace std; 

int RandNo(void)
{
srand(time(NULL));
return rand()%100;
}

int main()
{
int number=RandNo();
int guess;   


cin>>guess;
while(guess!=number)
{
if(guess<number)
cout<<"Your number is smaller than my number! Guess again!"<<endl;
else
            cout<<"Your number is bigger than my number! Guess again"<<endl;
cin>>guess;
}

cout<<"That is it!"<<endl;
return 0;
}

本回答被网友采纳
相似回答