第1个回答 2010-12-04
随机数真的生成了吗?为什么我记得语句不是这样的= =!你生成随机数然后。每随机一次只是一个数字所以你要循环20次存入数组。然后用数组排序来做它~我没看到你的排序语句……就在最后加个for(int j=0;j<20;j++)
{
for(int k=1;k<20;k++)
{
if(a[j]<a[k])
{temp=a[j];a[k]=a[j];a[j]=a[k];}
}
}
这是排序的~然后输出就可以了~
第2个回答 2010-12-05
float b=rand()/(RAND_MAX+1.0);
printf("%f\n",b);
注释:
stdlib.h头文件中有宏#define RAND_MAX 0x7fff
rand()产生一个0到0x7ffff即0到32767之间的随机数
rand()/(RAND_MAX+1.0)就等于一个0到1之间的小数了,因为rand()最大是32767最小是0,再除以32768就是一个0到1之间的小数(不能等于1),再乘以10就是一个0到10之间的数了(不等于10).最后再加1,就成了一个求1到10之间随机数的式子了.
第3个回答 2010-12-04
题目要求你把得到的20个数和排序后的20个数分别显示出来。
看你的代码只完成了一部分,剩下的就是排序了,网上有很多排序的方法
如有不明白,可以call我。
才发现,你这个还有问题,只是把第二十个数组的内容显示出来了
应该把:nums[20] = rand();
printf("%d\n",nums[20]);
中的20都改成i,并且每个数字加上一个空格区分,然后可以按照楼上的方法排序
第4个回答 2010-12-04
我英语也不好,猜着大概意思是要你弄20个随机数然后用选择排序法排序,然后再显示出来,但那个单词list不知道是不是什么数据结构,毕业3年了,基本没有编过程,所以也快忘光了。以下是我在vc2008里调试的,你参考一下,至于选择排序,你可以搜索一下,
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{ int nums[20];
int i;
srand(time(NULL));
for (i=0;i<20;i++)
{
nums[i] = rand()%20;//rand()%20意思是0到19之间的随机数,这个你自己定
printf("%d\n",nums[i]);//nums数组最后一个应该是num[19]才对,你要显示num[20]已经越界了
}
getchar();//getch(),我vc2008里有错,我就用这个了
return 0;
}