当前位置: 代码迷 >> C语言 >> 随即产生一个10位数,并且用到0--9不重复
  详细解决方案

随即产生一个10位数,并且用到0--9不重复

热度:100   发布时间:2006-04-07 20:46:00.0
不用函数rand()可以不???
----------------解决方案--------------------------------------------------------
如果不用,随机性如何解决呢?
我想不到,
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
同余法?
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------

请帮忙看下,这个程序为什么运行的结果还是错误的呢?
谢谢!
#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();
}


----------------解决方案--------------------------------------------------------
以下是引用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编辑过]


----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------
for(i=0;i<10;i++)
{
num+=a[i];
if(i<9)
num*=10;
}
我觉得这个FOR 里面的语句没有一点实际意义。num+=a[i].不就是算0+1+2+3+。。。+9吗?不管每次随机成什么样的十位数都会是一样的结果。
----------------解决方案--------------------------------------------------------

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


----------------解决方案--------------------------------------------------------