当前位置:首页 » 编程语言 » 随机数排序c语言

随机数排序c语言

发布时间: 2025-03-20 03:35:31

❶ 求解,用c语言编写一个程序,随机生成100个数,并从大到小排序

//#include"stdafx.h"//vc++6.0加上这一行.
#include"stdio.h"
#include"time.h"
#include"stdlib.h"
intmain(void){
intnDec[100],i,j,k;
srand((unsigned)time(NULL));
for(i=0;i<100;nDec[i++]=rand());
for(i=0;i<100;i++){
for(k=i,j=k+1;j<100;j++)
if(nDec[k]<nDec[j])k=j;
if(i!=k){
j=nDec[i];
nDec[i]=nDec[k];
nDec[k]=j;
}
printf("%d",nDec[i]);
}
printf(" ");
return0;
}

❷ 随机生成一组整数,利用快速排序思想,将其从小到大排好。(c语言代码)

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#defineRANDOM(i)(rand()%i)//随机的常量
#defineN10//设置数组长度
//分区操作
intPartition(intarray[],intleft,intright)
{
inti,j;
inttemp;
j=left-1;
for(i=left;i<=right;i++)
{
if(array[i]<=array[right])//以最后一个数组的值为基准
{
j++;
temp=array[j];
array[j]=array[i];
array[i]=temp;
}
}
returnj;
}

//迭代运算
voidQuikSort(intarray[],intleft,intright)
{
intpivot;
if(left<right)
{
pivot=Partition(array,left,right);
QuikSort(array,left,pivot-1);
QuikSort(array,pivot+1,right);
}
}

/*主函数*/
intmain()
{
inti=0;
inta[N];
srand((int)time(0));//设置随机数种子
for(i=0;i<N;i++)//排序前
{
a[i]=RANDOM(100);//100以内的随机数
printf("%d ",a[i]);//输出随机得到的数组
}
printf(" ");
QuikSort(a,0,N-1);
for(i=0;i<N;i++)//输出排序后的数组
{
printf("%d ",a[i]);
}
printf(" ");
}

❸ 如何产生1000个从1到1000之间的不重复的随机数,用C语言实现!

#include<stdio.h>
#include<stdlib.h> /*rand()函数的头文件*/
#define N 1000

/* rand()产生一个伪随机数*/
void main()
{
int i=0,j,a[N]={-1},flag;

while(i<N)
{
flag = 1 + N * rand()/(RAND_MAX+1); /*rand()/RAND_MAX 该式表示所得到的是集合[0,1]中的随机数
若是使用rand()/(RAND_MAX+1) 则可得到集合[0,1)中的随机数
1000 * rand()/(RAND_MAX+1)可产生[0,1000),取整则是[0,999]中的随机数*/
j=0;
for(;j<i;j++)
{
if(a[j] == flag) break; //查找数组中是否已经有了随机产生的值,有则跳出循环,重新产生,无则存入数组
}
if(j>=i) {
a[j] = flag;
i++;
}
}
for(int k=0;k<N;k++)
printf("%5d",a[k]);
}

上面这个程序完全可以产生从1-1000的随机数,不信的话可以使用排序法查看所得结果。

❹ 1到25的数字,如何通过C语言实现随机排列

首先不管是不是通过编译
做到随即排列,需要用到随机数产生函数。

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

main()
{
int i;
int cp1[10];
clrscr();

srand((unsigned)time(NULL)); /*随机数发生器,时间作为种子 */

for(i=0;i<10;i++)
{

cp1[i]=rand()%100+1;/*rand产生的随机数字*/

}

textcolor(12);
for(i=0;i<10;i++)
{
printf("\n");
cprintf("%d",cp1[i]);

}
getch();
}
以上是打印1到100的随机数字。

你说的要随机排列25个数字。
必须要产生25个随机数字。处理方法有很多,可以采用让世银随机数产生为1~25的数字,但是要保证猛运每个数字不一样。不能有重复,这个可以通过比较来完成。然后可以一一对应输出,或者直接输出产生的随机数也可以。另外一种方法是允许有重复,但是必须给每个数字1~25和产生的25个随机数字进行一一对应编号,然后首先按照随机数对应的输出,如果遇到相同的随机数,就随机数先后顺序排下枝返梁来对应输出。方法有很多,自己可以思考一下。

热点内容
ftpsite 发布:2025-03-20 13:05:57 浏览:193
php执行语句 发布:2025-03-20 12:58:54 浏览:9
安卓游戏数据苹果怎么退款 发布:2025-03-20 12:58:49 浏览:458
安卓版优酷为什么没有极清4k 发布:2025-03-20 12:58:10 浏览:460
服务器硬盘怎么装 发布:2025-03-20 12:57:13 浏览:631
fsb文件解压 发布:2025-03-20 12:31:34 浏览:136
3d源码棋牌 发布:2025-03-20 12:30:31 浏览:238
什么叫服务器访问限制 发布:2025-03-20 12:23:53 浏览:945
机架式服务器如何拆装 发布:2025-03-20 12:23:53 浏览:23
交叉编译器缺少库 发布:2025-03-20 12:20:12 浏览:716