當前位置:首頁 » 編程語言 » 隨機數排序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個隨機數字進行一一對應編號,然後首先按照隨機數對應的輸出,如果遇到相同的隨機數,就隨機數先後順序排下枝返梁來對應輸出。方法有很多,自己可以思考一下。

熱點內容
Android傳輸視頻 發布:2025-03-20 11:06:34 瀏覽:149
java軟體免費下載 發布:2025-03-20 10:26:01 瀏覽:705
安卓用什麼編譯 發布:2025-03-20 10:25:57 瀏覽:808
ftp中文軟體下載 發布:2025-03-20 10:07:47 瀏覽:508
nexus7android 發布:2025-03-20 10:06:58 瀏覽:619
安舍iq8如何修改密碼 發布:2025-03-20 10:06:17 瀏覽:880
解壓RTP 發布:2025-03-20 09:59:37 瀏覽:161
python量化分析 發布:2025-03-20 09:53:05 瀏覽:626
手機熱點有限的訪問許可權 發布:2025-03-20 09:50:46 瀏覽:440
為什麼安卓沒有ios系統流暢 發布:2025-03-20 09:50:43 瀏覽:793