【发布时间】:2014-02-14 08:35:20
【问题描述】:
我在玩这个“随机数游戏”时遇到了麻烦。
我希望随机数仅在内部执行时保持其值,并在用户决定重试时更改。
我认为在循环外添加 srand 每次都会更改值,但似乎并非如此。
//Libraries
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
//Global Constants
//Function Prototypes
int rnd();//random number function
//Execution Begins Here
int main(int argc, char *argv[]){
//Declare Variables
unsigned int seed=time(0);
int n;
char a;
//set the random number seed
srand(seed);
do{
do{
//Prompt user;
cout<<"*** Random Number Guessing Game *** \n"
<<" Guess a number between 1-10, \n"
<<" Enter your number below! \n";
cin>>n;
//process
if(n<rnd()){
cout<<" Too low, try again.\n";
}else if(n>rnd()){
cout<<" Too high, try again.\n";
}else if(n==rnd()){
cout<<rnd()<<" Congradulations you win!.\n";
}
}while(n!=rnd());
cout<<"try again? (y/n)\n";
cin>>a;
}while(a=='y' || a=='Y');
system("PAUSE");
return EXIT_SUCCESS;
}
int rnd(){
static int random=rand()%10+1;
return random;
}
【问题讨论】:
-
提示 - 什么改变了值?应该在内循环、外循环还是两个循环之外?
标签: c++ loops if-statement random srand