| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:rand()函数的使用问题
只看楼主 加入收藏
A306452792
Rank: 1
等 级:新手上路
帖 子:31
专家分:7
注 册:2010-8-18
结帖率:100%
收藏
 问题点数:0 回复次数:5 
rand()函数的使用问题
为什么输出时,有一个奇怪的数
#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;
int main()
{
int i,j,t;
int a[100];
srand((int)time(NULL));
for(i=0;i<10;i++)
a[i]=1+(int)(100.0*rand()/(RAND_MAX+1.0));
for(j=0;j<9;j++)
for(i=0;i<10-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
cout<<"输出的是个数从小到大的排列为:"<<endl;
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
搜索更多相关主题的帖子: include 
2011-03-24 13:56
sdupoplar
Rank: 2
等 级:论坛游民
帖 子:18
专家分:40
注 册:2011-3-24
收藏
得分:0 
程序没发现错误,你在什么环境下编译运行的?
2011-03-24 14:56
Lyone
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:99
专家分:195
注 册:2010-12-7
收藏
得分:0 
回复 楼主 A306452792
for(j=0;j<9;j++)
for(i=0;i<10-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
你前面初始化了a[0~9]的值,但是这个循环里。当j=0,i=9的这一步时。a[10]也参与到了判断。于是奇怪的数字就进来了。
2011-03-24 15:51
sdupoplar
Rank: 2
等 级:论坛游民
帖 子:18
专家分:40
注 册:2011-3-24
收藏
得分:0 
3楼 Lyone的回答是对的,开始没仔细看,只注意了rand()的使用没错。
2011-03-24 16:12
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:0 
i最大等于8吧?怎么可能等于9
2011-03-25 07:52
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:0 
RAND_MAX+1溢出了,rand()的在你这正确用法是rand()%RAND_MAX+1.0
2011-03-25 07:55
快速回复:rand()函数的使用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026242 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved