c语言:从键盘输入一个班(不超过30人)学生某门课的成绩

,当输入成绩为负值时,则输入结束,统计并输出不及格人数并打印不及格学生的成绩,按成绩高低排序,输出该班最高分及最低分。

#include "stdio.h"
/*学生信息*/
struct student
{
    int num;
    char name[20];
    float score;
}stu[5];
/*输入学生成绩*/
input()
{
    int i;
    for(i=0;i<5;i++)
    scanf("%d%s%f",&stu[i].num,stu[i].name,&stu[i].score);
}
/*求最高成绩并输出*/
high()
{
  int i, m;
  float maxscore;


    m = 0;
    maxscore = stu[0].score;
    for (i = 1; i < 5; i++)
    {
        if (stu[i].score > maxscore)
        {
            maxscore = stu[i].score;
            m = i;
        }
    }
    printf("The maxmum score is :%5.1f\n", maxscore);
    printf("The student number is: %d\n", stu[m].num);
    printf("The student name is: %s\n", stu[m].name);  
}
/*求最低成绩并输出*/
low()
{
    int i, m;
  float minscore;


    m = 0;
    minscore = stu[0].score;
    for (i = 1; i < 5; i++)
    {
        if (stu[i].score < minscore)
        {
            minscore = stu[i].score;
            m = i;
        }
    }
    printf("The minmum score is :%5.1f\n", minscore);
    printf("The student number is: %d\n", stu[m].num);
    printf("The student name is: %s\n", stu[m].name); 
}
/*从高到低排序*/
sort()
{
    int i,j,t1;
    float t;
    char na[20];
    for(i=0;i<4;i++)
        for(j=i+1;j<5;j++)
            if(stu[i].score<stu[j].score)
            {
                t=stu[i].score;
                stu[i].score=stu[j].score;
                stu[j].score=t;
                t1=stu[i].num;
                stu[i].num=stu[j].num;
                stu[j].num=t1;
                strcpy(na,stu[i].name);
                strcpy(stu[i].name,stu[j].name);
                strcpy(stu[j].name,na);

            }
}
/*输出排序后的成绩*/
outputsort()
{
    int i;
    for(i=0;i<5;i++)
    printf("%d,%s,%f\n",stu[i].num,stu[i].name,stu[i].score);
}
/*求不及格的人数并输出,输出不及格的学生信息*/
nopass()
{
    int i,j=0;
    for(i=0;i<5;i++)
    if(stu[i].score<60)
    {
         printf("%d,%s,%f\n",stu[i].num,stu[i].name,stu[i].score);
         j++;
    }
    printf("不及格的人数为%d",j);
}
void main()
{
    input();
    high();
    low();
    sort();
    outputsort();
    nopass();
    getch();
}

追问

太乱了,能否分行。还有变量名可否短些,看不明白啊

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网