C语言编程:试用随机函数产生20个〔100,1000〕之间的整数,并按从小到大的顺序,按每行10个数的格式输出

C语言编程

#include <stdio.h>
#include <stdlib.h >
#include <time.h>

int getRandNum();
bool randKey = true;

int main()
{
int a[20] ={0};
for(int i=0;i<20;i++)
{
a[i] = getRandNum()%899 +101; //先产生0-899然后加上101就可以得到100到1000
printf("%d,",a[i]);
}

for(int i=0;i<20;i++) //冒泡排序法
{
for(int j=19;j>i;--j)
{
if(a[j]<a[j-1])
{
int temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
printf("\n");
for(int i=0;i<20;i++)
{
printf("%d,",a[i]);
}

return 0;
}

int getRandNum()
{
if( randKey) //为了防止出现错误,所以产生随机种子的函数只能执行一次
//如果注销这个if就会产生一样的值
{
randKey = false; //执行一次后将开关关闭
srand((unsigned)time(0)); //产生种子
}

return rand(); //调用rand()产生随机数返回
}

//下面是测试结果

684,564,627,559,531,444,825,300,197,553,944,463,329,743,873,793,453,924,236,987,

197,236,300,329,444,453,463,531,553,559,564,627,684,743,793,825,873,924,944,987,
请按任意键继续. . .

看看还行吗?用VC调试的
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-16
先定义随机函数f
然后定义一个整数变量a
定义一个数组(长度20个数)b
*套用随机函数产生整数赋予变量a
比较变量a的值是否在100~1000,是就依次放到数组中,不是就继续用随机函数产生整数比较。
循环从*开始的步骤,可以利用for来确定直到b(19)也被赋值

然后用起泡法排序数组b中的20个数

最后输出的时候用循环,b(0)~b(9)后输出回车,接着输出b(10)~b(19)
程序懒得写了
而且说实话我不知道随机函数在c怎么写。。。
在matlab里直接可以调用的说。。本回答被提问者和网友采纳
第2个回答  2007-10-11
用随机函数计算出20个数,判断它是否是〔100,1000〕之间的整数:若是则存如数组,判断数组是否存满,若是则做后面的排序输出,若否则继续循环用随机函数计算;
不是继续循环用随机函数计算.

时间紧,只说了方法,你自己想想代码吧
有时间再给你做做
第3个回答  2007-10-11
楼上答案不错,
但是个人感觉插入排序更快,可以生成一个随机数后马上插入,速度是很快的。
第4个回答  2007-10-11
_鈊_烦_薏乱 - 江湖新秀 五级 , 哥们,你太甯了|~!~!~!~