9.3 结构体应用——学生管理系统

# include <stdio.h>
# include <stdlib.h>
int len,i;
struct Student * Stulist;
struct Student 
{
    char name[100];
    int age;
    double score;
};

void InputStudent (struct Student * Stulist,int len)
{
    for(i=0;i<len;++i)
    {
        printf("请输入第%d个学生的信息:",i+1);
        printf("依次输入学生姓名、年龄、成绩\n");
        scanf("%s%d%lf",Stulist[i].name,&Stulist[i].age,&Stulist[i].score);
    }
}
    
void OutputStudent(struct Student *Stulist,int len)
{
    for(i=0;i<len;++i)
    {
        printf("第%d个学生的信息是:",i+1);
        printf("学生姓名: %s  学生年龄: %d  学生成绩: %.1lf  \n",Stulist[i].name,Stulist[i].age,Stulist[i].score);
    }  
}
void sort(struct Student * Stulist,int len)
{
    int j,k;
    for(j=0;j<len;++j)//按照成绩由高到低冒泡排序
    {
        for(k=0;k<len-1;++k)
        {
            if(Stulist[k+1].score>Stulist[k].score)
            {
                struct Student c;
                c=Stulist[k];
                Stulist[k]=Stulist[k+1];
                Stulist[k+1]=c;
            }            
        }
    }
}

int main (void)
{
    printf("请输入学生总人数len=");
    scanf("%d",&len);
    Stulist=(struct Student *)malloc(sizeof(struct Student )*len);//动态构造了一个一维数组,存放若干个学生信息
    //这句话一定不要忘了写(sizeof(struct Student)*len)
    InputStudent(Stulist,len);
    sort(Stulist,len);
    OutputStudent(Stulist,len);
    system("pause");
    return 0;

}

输出结果


请输入学生总人数len=5
请输入第1个学生的信息:依次输入学生姓名、年龄、成绩
Zoe
16
77
请输入第2个学生的信息:依次输入学生姓名、年龄、成绩
Mike
15
99
请输入第3个学生的信息:依次输入学生姓名、年龄、成绩
Mary
14
88
请输入第4个学生的信息:依次输入学生姓名、年龄、成绩
Jack
15
67
请输入第5个学生的信息:依次输入学生姓名、年龄、成绩
June
16
89
第1个学生的信息是:学生姓名: Mike  学生年龄: 15  学生成绩: 99.0
第2个学生的信息是:学生姓名: June  学生年龄: 16  学生成绩: 89.0
第3个学生的信息是:学生姓名: Mary  学生年龄: 14  学生成绩: 88.0
第4个学生的信息是:学生姓名: Zoe  学生年龄: 16  学生成绩: 77.0
第5个学生的信息是:学生姓名: Jack  学生年龄: 15  学生成绩: 67.0
Press any key to continue . . . 


本文章使用limfx的vsocde插件快速发布