划句顾 发表于 2021-6-19 11:17:16

C语言:用结构体数组保存学生的基本信息

本帖最后由 划句顾 于 2021-6-19 12:05 编辑

/*
@author:LaoGu
@time:2021/6/19
@fuction:用结构体数组保存学生的基本信息, 并根据要求在屏幕输出各个学生的总分和平均分,
         并打印出成绩最好的学生信息(学号、姓名、三门成绩、总分和平均分)。
*/
#include<stdio.h>
#define N 5

struct Student
{
        int num;//学号
        char name;//姓名
        float score; //三门成绩
        float sum;   //三门总分
        float aver;//平均成绩
};

int main()
{
        //void input(struct Student stu[]);
        struct Student max(struct Student stu[]);
    void print(struct Student stud);
        int i;
        struct Student stu=
        {
                {201501,"Wang",89,98,67},
                {201502,"Li",70,80,90},
                {201506,"Sun",78,88,80},
                {201512,"Zhang",100,87,91},
                {201520,"Zhao",81,64,92}
},*p = stu;
        for(i=0;i<N;i++)
        {
                stu.sum = stu.score + stu.score + stu.score;//计算总分
                stu.aver= (stu.score + stu.score + stu.score)/ 3.0;   //计算平均分
                printf("学号:%d\t姓名:%s\t总分为%.2f\t平均分为:%.2f\n",stu.num,stu.name,stu.sum,stu.aver);
            
        }

        //input(p);
        print(max(p));
        return 0;
}

/*void input(struct Student stu[])
{
        int i ;
        printf("Please input student's information(number,name,scores):\n");
        for(i=0;i<N;i++)
        {
                scanf("%d%s%f%f%f",&stu.num,stu.name,&stu.score,&stu.score,&stu.score);
                stu.sum = stu.score + stu.score + stu.score;//计算总分
                stu.aver= (stu.score + stu.score + stu.score)/ 3.0;   //计算平均分
                printf("学号:%d,姓名:%s的总分为%f,平均分为:%f\n",stu.num,stu.name,stu.sum,stu.aver);
            
        }
       

}
*/

struct Student max(struct Student stu[])
{
        int i,m=0;
        for(i=0;i<N;i++)
                if(stu.sum>stu.sum)
                        m = i;
        return stu;
}

void print(struct Student stud)
{
        printf("\n成绩最高的学生为:\n");
        printf("学号:%d\n姓名:%s\n三门课成绩:%.2f,%.2f,%.2f\n总分:%.2f\n平均分:%.2f\n",stud.num,stud.name,stud.score,stud.score,stud.score,stud.sum,stud.aver);
}






static/image/hrline/5.gif
输入以下数据(包括学号、姓名、三门课成绩),计算出总分和平均分。

/*
@author:LaoGu
@time:2021/6/19
@fuction:用结构体数组保存学生的基本信息, 并根据要求在屏幕输出各个学生的总分和平均分,
         并打印出成绩最好的学生信息(学号、姓名、三门成绩、总分和平均分)。
*/
#include<stdio.h>
#define N 5

struct Student
{
        int num;//学号
        char name;//姓名
        float score; //三门成绩
        float sum;   //三门总分
        float aver;//平均成绩
};

int main()
{
        void input(struct Student stu[]);
        struct Student max(struct Student stu[]);
    void print(struct Student stud);
        struct Student stu,*p = stu;
        input(p);
        print(max(p));
        return 0;
}

void input(struct Student stu[])
{
        int i ;
        printf("Please input student's information(number,name,scores):\n");
        for(i=0;i<N;i++)
        {
                scanf("%d%s%f%f%f",&stu.num,stu.name,&stu.score,&stu.score,&stu.score);
                stu.sum = stu.score + stu.score + stu.score;//计算总分
                stu.aver= (stu.score + stu.score + stu.score)/ 3.0;   //计算平均分
                printf("学号:%d,姓名:%s的总分为%f,平均分为:%f\n",stu.num,stu.name,stu.sum,stu.aver);
            
        }
       
}

struct Student max(struct Student stu[])
{
        int i,m=0;
        for(i=0;i<N;i++)
                if(stu.sum>stu.sum)
                        m = i;
        return stu;
}

void print(struct Student stud)
{
        printf("\n成绩最高的学生为:\n");
        printf("学号:%d\n姓名:%s\n三门课成绩:%.2f,%.2f,%.2f\n总分:%.2f\n平均分:%.2f\n",stud.num,stud.name,stud.score,stud.score,stud.score,stud.sum,stud.aver);
}

页: [1]
查看完整版本: C语言:用结构体数组保存学生的基本信息