C++中随机数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 14:23:17
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <fstream>
using namespace std;
int main ()
{ int a,b,c,d;

srand(time(NULL));
bool e=false;
//循环生成,可以猜多组数字
while (e=false)
{ a=1+(rand()%9);
b=1+(rand()%9);
c=1+(rand()%9);
d=1+(rand()%9);
if (a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d)
e=true;
else e=false;
}

cout <<a<<b<<c<<d;
}
课程设计里面的一个问题,由上面的代码编译出来的结果怎么会是4个大负数?
问题出在哪?谢谢

while(e=false)
改成
while(e==false),如是第一种写法,while不执行 ,abcd就赋不了值 ,给你的是随机值

#include <cstdlib>
#include <ctime>
#include <fstream>
using namespace std;
int main ()
{ int a,b,c,d;

bool e=true;
//循环生成,可以猜多组数字
while (e)
{ srand(time(NULL));
a=1+(rand()%9);
b=1+(rand()%9);
c=1+(rand()%9);
d=1+(rand()%9);
if (a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d)
e=false;
else e=true;
}

cout <<a<<b<<c<<d;
}

首先,这个程序有很大的问题
每次rand()之前都要用srand(time(NULL))这样才能出随机数。
其次while (e=false) 这句错了 改while (e==false)

int main ()
{ int a,b,c,d;
bool e=false;
//循环生成,可以猜多组数字
while (e==false)
{
srand(time(NULL));
a=1+(rand()%9);
srand(time(NULL));
b=1+(rand()%9);
srand(time(NULL));
c=1+(rand()%9);
srand(time(NULL));
d=1+(rand()%9);
if (a!=b