利用rand()函数产生随机数字,rand()%n产生小于n的随机数, 然后交换。
成都创新互联是专业的谢通门网站建设公司,谢通门接单;提供成都网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行谢通门网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
下面是我写的程序:
#include stdio.h#include stdlib.hint main(){ int a[1000], n, i, j, p, q, t; while(1) { printf("\n\n请输入一维数组的维数,0结束 n = "); scanf("%d", n); if(n==0) break; printf("请输入一维数组中的数据:\n"); for(i=0; in; i++) scanf("%d", a[i]); j=10; while(j--)//随机交换10次 { p=rand()%n;//产生两个随机数 q=rand()%n; t=a[p];//交换 a[p]=a[q]; a[q]=t; } printf("\n随机交换后数组的元素为:\n"); for(i=0; in; i++) printf("%d ", a[i]); }}
你指的随机函数每次产生的长度都不一样是产生的随机数位数不一样吧,那是肯定的,而且他肯定在1~20000范围内。至于第二个问题是你输出的问题,time_t是long型的,你用float型输出肯定是0,应改为printf("t=%dms\n",t);
#include
#include
#include
intmain()
{
inti,j,n,k,t,a[100];
srand((unsigned)time(NULL));
p
利用rand()函数产生随机数字,rand()%n产生小于n的随机数,然后交换。
运行的结果:
#include
#include
intmain()
{
intnbs
利用rand()函数产生随机数字,rand()%n产生小于n的随机数,然后交换。
扩展资料
C语言排序法
在一层循环找出最小数的下标,该下标用min保存,直到比较完整个数组,即可找到最小的数,然后将该数放入数组的第一位。
这样只能排好一个元素,于是需要再嵌套一层外层循环即可排好所有元素。第二次循环就不用再比较第一个元素了,因为第一个元素已经排好,依次类推,每一次循环就会排好一个,进行n-1次循环即可排好所有元素。