鱼C论坛

 找回密码
 立即注册
查看: 2103|回复: 0

[技术交流] C语言:用结构体数组保存学生的基本信息

[复制链接]
发表于 2021-6-19 11:17:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

struct Student 
{
        int num;  //学号
        char name[20];  //姓名
        float score[3]; //三门成绩
        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[N]=
        {
                {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[i].sum = stu[i].score[0] + stu[i].score[1] + stu[i].score[2];//计算总分
                stu[i].aver= (stu[i].score[0] + stu[i].score[1] + stu[i].score[2])/ 3.0;   //计算平均分
                printf("学号:%d\t姓名:%s\t总分为%.2f\t平均分为:%.2f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].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[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
                stu[i].sum = stu[i].score[0] + stu[i].score[1] + stu[i].score[2];//计算总分
                stu[i].aver= (stu[i].score[0] + stu[i].score[1] + stu[i].score[2])/ 3.0;   //计算平均分
                printf("学号:%d,姓名:%s的总分为%f,平均分为:%f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver);
             
        }
        

}
*/

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

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[0],stud.score[1],stud.score[2],stud.sum,stud.aver);
}


1624072600(1).jpg




                               
登录/注册后可看大图

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

struct Student 
{
        int num;  //学号
        char name[20];  //姓名
        float score[3]; //三门成绩
        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[N],*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[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
                stu[i].sum = stu[i].score[0] + stu[i].score[1] + stu[i].score[2];//计算总分
                stu[i].aver= (stu[i].score[0] + stu[i].score[1] + stu[i].score[2])/ 3.0;   //计算平均分
                printf("学号:%d,姓名:%s的总分为%f,平均分为:%f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver);
             
        }
        
}

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

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[0],stud.score[1],stud.score[2],stud.sum,stud.aver);
}

屏幕截图(27).png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-20 13:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表