#include <stdio.h> #include <stdlib.h> #define N 100 //字符常量 int ReadScore (int score[]); //函数声明 void paixuscore(int score[],int m); void putscore(int score[],int m); int FindMax(int score[],int m); int main(int agrc,char*agrv[]) { int score[N],m,max; //m为人数 m=ReadScore(score); printf("学生总数是:%d\n",m); paixuscore(score,m); printf("分数排序为:"); putscore(score,m); max=FindMax(score,m); printf("\nmax=%d\n",max); return 0; } int ReadScore (int score[]) //函数定义,输入成绩 { int i=-1; //保证下标从零开始 do{ i++; printf("Input score:"); scanf("%d",&score[i]); }while(score[i]>=0); //输入为负数时结束循环 return i; //返回学生人数 } void paixuscore(int score[],int m) //函数定义,从大到小排序分数 { int temp; for(int i=0; i<m; i++) { for(int j=0; j<m-1-i; j++) { if(score[j]<score[j+1]) { temp=score[j]; score[j]=score[j+1]; score[j+1]=temp; } } } } void putscore(int score[],int m) //定义函数,输出分数 { for(int i=0; i<m; i++) { printf("%d ",score[i]); } } int FindMax(int score[],int m) //定义函数,求最大值 { int max=0; for(int j=1;j<m;j++) //注意j=1 { if(score[j]>score[max]) { max=j; } } return score[max]; }