阅读 145

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

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

登录后复制


©著作权归作者所有:来自51CTO博客作者知的原创作品,如需转载,请注明出处,否则将追究法律责任


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐