程式碼示例:
#include "stdio.h"
int main(int argc,char *argv[]){
int n,i,j,k,t,s[30];
printf("How many students(1~30)?\nn=");
while(scanf("%d",&n)!=1 || n<1 || n>30){//限制學生數1~30,若輸錯了要求重輸
fflush(stdin);
printf("Input error, redo: ");
}
printf("Enter each student"s total grade...\n");
for(i=0;i<n;scanf("%d",s+i++));//輸入每個學生的成績
printf("\n");
for(i=0;i<n;i++){//這裡開始選擇法排序
for(k=i,j=k+1;j<n;j++)
if(s[k]<s[j])
k=j;
if(k-i)
j=s[k],s[k]=s[i],s[i]=j;//到這裡排序內容結束,下面是順便輸出
if(!i || s[i]!=s[i-1])//這個if小演算法解決重分為同名次且佔位問題
t=i+1;
printf("%d:\t%d\n",s[i],t);//輸出
return 0;
程式碼示例:
#include "stdio.h"
int main(int argc,char *argv[]){
int n,i,j,k,t,s[30];
printf("How many students(1~30)?\nn=");
while(scanf("%d",&n)!=1 || n<1 || n>30){//限制學生數1~30,若輸錯了要求重輸
fflush(stdin);
printf("Input error, redo: ");
}
printf("Enter each student"s total grade...\n");
for(i=0;i<n;scanf("%d",s+i++));//輸入每個學生的成績
printf("\n");
for(i=0;i<n;i++){//這裡開始選擇法排序
for(k=i,j=k+1;j<n;j++)
if(s[k]<s[j])
k=j;
if(k-i)
j=s[k],s[k]=s[i],s[i]=j;//到這裡排序內容結束,下面是順便輸出
if(!i || s[i]!=s[i-1])//這個if小演算法解決重分為同名次且佔位問題
t=i+1;
printf("%d:\t%d\n",s[i],t);//輸出
}
return 0;
}