| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3188 人关注过本帖
标题:随即产生一个10位数,并且用到0--9不重复
只看楼主 加入收藏
a13007788
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-7
收藏
得分:0 
不用函数rand()可以不???

2006-04-07 20:46
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
如果不用,随机性如何解决呢?
我想不到,

对不礼貌的女生收钱......
2006-04-08 08:12
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 

回21楼的。
如果不用rand()
那就自己做一个随机数。
最简单就是用“同余法”


2006-04-08 10:44
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
同余法?

对不礼貌的女生收钱......
2006-04-08 13:36
eddysoft
Rank: 1
等 级:新手上路
威 望:1
帖 子:113
专家分:0
注 册:2006-2-27
收藏
得分:0 

我好久不弄c了,不知道c有没有枚举,用枚举更好些


2006-04-08 14:07
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

请帮忙看下,这个程序为什么运行的结果还是错误的呢?
谢谢!
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int a[10],i,random,swap;
double num=0;
for(i=0;i<10;i++)
{
a[i]=i;
}
srand(time(NULL));

for(i=0;i<10;i++)
{
random=rand()%10;
swap=a[i];
a[i]=a[random];
a[random]=swap;
}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
for(i=0;i<10;i++)
{
num+=a[i];
if(i<9) /*我改了这个*/
num*=10;
}
printf("%Lf",num);  
getch();
}


对不礼貌的女生收钱......
2006-04-09 08:46
DoubleJ
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-3-23
收藏
得分:0 
以下是引用soft_wind在2006-4-9 8:46:00的发言:

请帮忙看下,这个程序为什么运行的结果还是错误的呢?
谢谢!
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int a[10],i,random,swap;
double num=0;
for(i=0;i<10;i++)
{
a[i]=i;
}
srand(time(NULL));

for(i=0;i<10;i++)
{
random=rand()%10;
swap=a[i];
a[i]=a[random];
a[random]=swap;
}
for(i=0;i<10;i++)
printf("%d\n",a[i]);
for(i=0;i<10;i++)
{
num+=a[i];
if(i<9) /*我改了这个*/
num*=10;
printf("%Lf",num);  
getch();
}

[此贴子已经被作者于2006-4-9 9:18:02编辑过]

2006-04-09 09:08
lisong526
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-4-9
收藏
得分:0 

倒数第三行有个输出错误!
printf("%Lf",num); 应为 printf("%lf",num);
即‘L' 应为‘l’


因为有梦想,所以才会有成功!
2006-04-09 09:13
DoubleJ
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-3-23
收藏
得分:0 
for(i=0;i<10;i++)
{
num+=a[i];
if(i<9)
num*=10;
}
我觉得这个FOR 里面的语句没有一点实际意义。num+=a[i].不就是算0+1+2+3+。。。+9吗?不管每次随机成什么样的十位数都会是一样的结果。
2006-04-09 09:15
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 

谢谢28楼的,问题解决了!
29楼的,你好象错了,我下面还有一句:
if(i<9)
num*=10;


对不礼貌的女生收钱......
2006-04-09 09:22
快速回复:随即产生一个10位数,并且用到0--9不重复
数据加载中...
 
   



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

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