Ⅰ、用選擇法程序排列:
①、//代碼摘下直接可以運行
//選擇法成績排列
#include<stdio.h>
#define N 10
int main()
{
int s,i,j,tmp;
int a[10]={78,56,38,99,81,86,39,100,49,78};
for( i=0; i<10;i++) //輸出當前數組中的數值
printf("%d ",a[i]);
printf("\n");
for( i=0; i<N-1;i++)
{ s=i; //S作爲一個判斷值,來決定是否用tmp進行交換
for( j=i+1;j<10;j++)
if(a[s]>a[j])
s=j;
if(s!=i)
{tmp=a[s];
a[s]=a[i];
a[i]=tmp;
}
}
for( i=0; i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
②、結果展示:
例如:此程序是把數組中的十個元素按照從小到大的順序來輸出,輸出的結果如下圖所示:
☺寄語:
Ⅰ、此程序在Visual C++6.0版本上運行的;
Ⅱ、如果我給的程序有問題,或在敘述方面有問題,或者看不懂我講解的意思,請及時指出或留言和我討論,謝謝各位大佬!!!
Ⅲ、
①、程序中首先是輸出數組中的元素,按照數組從0~9的順序輸出元素;
②、然後通過排序使十個元素從小到大的順序輸出:for( i=0; i<N-1;i++)
是指要將十個元素排列,排列的過程是將第一個元素分別於第2~9個元素比較找到最小的一個,然後保存在a[0]中,然後是將第二個元素分別於第3到9個元素比較找到最小的一個,然後保存在a[1]中,以此類推直到a[9]排滿爲止,然後輸出得到最終答案;
③、在數組中請注意a[0]是存儲第一個元素,a[1]是存儲第二個元素,一直到最後;