首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

rand()/101如何会出现一个很大的负数

2012-03-17 
rand()/101怎么会出现一个很大的负数?voidInitNode(PStuNodep_Curr){inti1staticintStuID1srand((unsi

rand()/101怎么会出现一个很大的负数?
void   InitNode(PStuNode   p_Curr)
{
int   i   =   1;
static   int   StuID   =   1;

srand(   (unsigned)time(NULL));



//随机生成学生成绩       就这里!!!!!!!!!
//Mark数组中存储本学生语数外三们成绩,随机生成的
//但有时候偶尔会出现会出现很大的负数,这是怎么回事?
//我找不到原因,所以又加个if来确定其值的范围
for(i   =   0;   i   <   3;   i++)
{
p_Curr-> Mark[i]   =   rand()%101;

//if(p_Curr-> Mark[i]   >   101   &&   p_Curr-> Mark[i]   <   0   )
//{
//i--;
//}
}



p_Curr-> Mark[3]   =   (p_Curr-> Mark[0]   +   p_Curr-> Mark[1]   +   p_Curr-> Mark[2])/3;

i   =   1;

while(1   ==   i)
{
p_Curr-> StuID   =   StuID;  

cout < < "请输入学号 ";
cout.fill( '0 ');          
cout.width(3);
cout < <StuID;
cout < < "的学生姓名: ";
cin> > p_Curr-> StuName;
cout < <endl;

if(p_Curr-> StuName[9]   <   0)
{
i   =   0;
}
else
{
cout < < "您输入的字符数已超过10个的最大限度! " < <endl;
}
}
StuID++;
}



[解决办法]
int rand( void );

Remarks

The rand function returns a pseudorandom integer in the range 0 to RAND_MAX


The constant RAND_MAX is the maximum value that can be returned by the rand function. RAND_MAX is defined as the value 0x7fff.

是不是你的p_Curr-> Mark越界了?

[解决办法]
rand()/101
==》
rand()%101
[解决办法]
恩, 程序中是用的 rand()%101 啊 ·····
看标题,以为楼主你写错了~
汗 ~

[解决办法]
p_Curr-> Mark[i] = rand()%101;
cout < <p_Curr-> Mark[i] < < '\t '; //把数据输出来看看,不应该会出现负数的情况
[解决办法]
如果确实是有负数,
那么尝试 自定义 RAND_MAX 为有符号数据的极限值!

热点排行