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

C语言编程... C语言编程 展开
 我来答
花式码农
2007-10-11 · TA获得超过1.7万个赞
知道大有可为答主
回答量:4894
采纳率:0%
帮助的人:5079万
展开全部
#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调试的
liujiantaozi
推荐于2018-04-16 · TA获得超过1447个赞
知道小有建树答主
回答量:409
采纳率:0%
帮助的人:567万
展开全部
先定义随机函数f
然后定义一个整数变量a
定义一个数组(长度20个数)b
*套用随机函数产生整数赋予变量a
比较变量a的值是否在100~1000,是就依次放到数组中,不是就继续用随机函数产生整数比较。
循环从*开始的步骤,可以利用for来确定直到b(19)也被赋值

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

最后输出的时候用循环,b(0)~b(9)后输出回车,接着输出b(10)~b(19)
程序懒得写了
而且说实话我不知道随机函数在c怎么写。。。
在matlab里直接可以调用的说。。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuyongai0563
2007-10-11 · 超过26用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:0
展开全部
用随机函数计算出20个数,判断它是否是〔100,1000〕之间的整数:若是则存如数组,判断数组是否存满,若是则做后面的排序输出,若否则继续循环用随机函数计算;
不是继续循环用随机函数计算.

时间紧,只说了方法,你自己想想代码吧
有时间再给你做做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐正涵柳3
2007-10-11 · TA获得超过952个赞
知道小有建树答主
回答量:650
采纳率:100%
帮助的人:733万
展开全部
楼上答案不错,
但是个人感觉插入排序更快,可以生成一个随机数后马上插入,速度是很快的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
携角累3126
2007-10-11 · 超过13用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:59.6万
展开全部
_鈊_烦_薏乱 - 江湖新秀 五级 , 哥们,你太甯了|~!~!~!~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式