請懂的同學幫我看看,高低排序中間為什么有兩個不排
#include <stdio.h>
int SUM(int score[],int sum)
{
? ? int i;
? ? for(i=0;i<=9;i++)
? ? {
? ? ? ? sum = sum+score[i];
? ? }
? ? return sum;
}
int PINGJUNSHU(int sum)
{
? ? int pingjun;
? ? pingjun = sum/10;
? ? printf("平均分為:%d\n",pingjun);
? ? return 0;
}
int MAX(int score[])
{
? ? int i;
? ? int max = score[0];
? ? for(i=1;i<9;i++){
? ? ? ? if(max<score[i]){
? ? ? ? ? ? max = score[i];
? ? ? ? }
? ? ? ??
? ? }
? ? printf("最高分為:%d\n",max);
? ? return 0;
}
int MIN(int score[]){
? ? int i ;
? ? int min = score[0];
? ? for(i=1;i<=9;i++){
? ? ? ? if(min>score[i]){
? ? ? ? ? ? min = score[i];
? ? ? ? }
? ? }
? ? printf("最低分為:%d\n",min);
? ? return 0;
}
int GOUDIPAIXU(int score[]){
? ? int i,j;
? ? for(i=0;i<=9;i++){
? ? ? ? for(j=0;j<i;j++){
? ? ? ? ? ? if(score[j]<score[j+1]){
? ? ? ? ? ? ? ? int k;
? ? ? ? ? ? ? ? k = score[j+1];
? ? ? ? ? ? ? ? score[j+1] = score[j];
? ? ? ? ? ? ? ? score[j] = k;
? ? ? ? ? ? ? ??
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? printf("****************\n");
? ? printf("成績從高到低排序為:\n");
? ? int k;
? ? for(k=0;k<=9;k++){
? ? ? ? printf("%d\t",score[k]);
? ? ? ??
? ? }
? ? return 0;
}
int main()
{
? ? int score[]={67,98,75,63,82,79,81,91,66,84};
? ? int sum = 0;
? ? sum = SUM(score,sum);
? ? printf("總分為:%d\n",sum);
? ? PINGJUNSHU(sum);
? ? MAX(score);
? ? MIN(score);
? ? GOUDIPAIXU(score);
? ??
? ? return 0;
}
運行成功
總分為:786
平均分為:78
最高分為:98
最低分為:63
****************
成績從高到低排序為:
98 82 81 79 91 75 67 66 84 63
2018-01-06
我理解的排序的本質(zhì)是要把最大或者最小的數(shù)先·放在最后,然后就不管它,繼續(xù)把第二大或者小的數(shù)按照相同的方法排序進行一定次數(shù)后自然就能完成排序(菜鳥,說的不太嚴謹)