
5个回答
展开全部
#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调试的
#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调试的
展开全部
先定义随机函数f
然后定义一个整数变量a
定义一个数组(长度20个数)b
*套用随机函数产生整数赋予变量a
比较变量a的值是否在100~1000,是就依次放到数组中,不是就继续用随机函数产生整数比较。
循环从*开始的步骤,可以利用for来确定直到b(19)也被赋值
然后用起泡法排序数组b中的20个数
最后输出的时候用循环,b(0)~b(9)后输出回车,接着输出b(10)~b(19)
程序懒得写了
而且说实话我不知道随机函数在c怎么写。。。
在matlab里直接可以调用的说。。
然后定义一个整数变量a
定义一个数组(长度20个数)b
*套用随机函数产生整数赋予变量a
比较变量a的值是否在100~1000,是就依次放到数组中,不是就继续用随机函数产生整数比较。
循环从*开始的步骤,可以利用for来确定直到b(19)也被赋值
然后用起泡法排序数组b中的20个数
最后输出的时候用循环,b(0)~b(9)后输出回车,接着输出b(10)~b(19)
程序懒得写了
而且说实话我不知道随机函数在c怎么写。。。
在matlab里直接可以调用的说。。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用随机函数计算出20个数,判断它是否是〔100,1000〕之间的整数:若是则存如数组,判断数组是否存满,若是则做后面的排序输出,若否则继续循环用随机函数计算;
不是继续循环用随机函数计算.
时间紧,只说了方法,你自己想想代码吧
有时间再给你做做
不是继续循环用随机函数计算.
时间紧,只说了方法,你自己想想代码吧
有时间再给你做做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上答案不错,
但是个人感觉插入排序更快,可以生成一个随机数后马上插入,速度是很快的。
但是个人感觉插入排序更快,可以生成一个随机数后马上插入,速度是很快的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
_鈊_烦_薏乱 - 江湖新秀 五级 , 哥们,你太甯了|~!~!~!~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询