其他分享
首页 > 其他分享> > 从键盘输入若干个学生成绩,输入负数作为输入结束标记,用数组和函数实现求解最高分和将所有成绩降序排列

从键盘输入若干个学生成绩,输入负数作为输入结束标记,用数组和函数实现求解最高分和将所有成绩降序排列

作者:互联网

#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];
}


标签:ReadScore,return,int,max,降序,score,printf,成绩,输入
来源: https://blog.51cto.com/u_15156944/2728542