?? 一維數(shù)組 選擇法 升序.cpp
字號(hào):
/**/
#include<stdio.h> //導(dǎo)入包含I/O函數(shù)的頭文件stdio.h
#include<stdlib.h> //導(dǎo)入包含隨機(jī)數(shù)函數(shù)的頭文件stdlib.h
#include<time.h> //導(dǎo)入 的頭文件time.h
void main()
{while(1)
{
printf("\n\t選擇排序法 升序遞增\n\n");
int a[50],i,j,n,temp,min,minsub;
printf(" 輸入欲排序的數(shù)值的個(gè)數(shù) 0<n<=50(n<=0或n>50時(shí)結(jié)束):");
scanf("%d",&n);
if(n<=0||n>50){break;}
printf("\n 用隨機(jī)數(shù)函數(shù)rand()給數(shù)組a動(dòng)態(tài)賦值(取值范圍0~32767)\n 排序前的數(shù)列為: \n");
srand((unsigned)time(NULL)); //用當(dāng)前的時(shí)間設(shè)置rand()隨機(jī)數(shù)函數(shù)的種子值
for(i=0;i<n;i++)
{
a[i]=rand(); //產(chǎn)生隨機(jī)數(shù)(0~32767)給數(shù)組元素賦值
printf("%-8d",a[i]);
if((i+1)%8==0){printf("\n");} //輸出一行8個(gè)
}
for(i=0;i<n-1;i++)
{
min=a[i]; minsub=i; //設(shè)第1個(gè)元素值為當(dāng)前最小值,記錄其下標(biāo)
for(j=i+1;j<n;j++) //在a[i+1]~a[i]中尋找最小值
{
if(a[j]<min){min=a[j]; minsub=j;} //當(dāng)前元素小于最小值,則記錄
}
temp=a[i];a[i]=a[minsub];a[minsub]=temp; //a[i]與最小值交換
}
printf("\n 升序排序后的數(shù)列為:\n");
for(i=0;i<n;i++){printf("%-8d",a[i]); if((i+1)%8==0){printf("\n");}} //輸出1行8個(gè)
printf("\n 欲繼續(xù)排序嗎?是則回車,否則輸入‘空格’回車 ");
getchar();
if(getchar()==' '){break;}
else {while(getchar()!='\n'){;}}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -