----------------解决方案--------------------------------------------------------
如果不用,随机性如何解决呢?
我想不到,
----------------解决方案--------------------------------------------------------
回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();
}
----------------解决方案--------------------------------------------------------
请帮忙看下,这个程序为什么运行的结果还是错误的呢?
谢谢!
#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;
----------------解决方案--------------------------------------------------------