//编写一个函数print,输出学生的信息,该数组有5个学生的记录,包括: //num,sname,score[3],用主函数输入这些记录,用print函数输出这些记录。

//编写一个函数print,输出学生的信息,该数组有5个学生的记录,包括:
//num,sname,score[3],用主函数输入这些记录,用print函数输出这些记录。


#include<stdio.h>
#define N 5 //预定义,N代表5个学生

struct student
{
int num;
char sname[20];
int score[3];
int sum;
}stu[N]; //定义学生的数组

//输入函数print
//作者:李
//时间:2022-4-21
//功能:输入信息
//技术:双重循环,数组的嵌套
//变量:结构体变量
void input(struct student stu[])
{
int i;
for(i=0;i<N;i++)
{
printf("\n第%d个学生的信息:\n",i+1);
printf("学号:");
scanf("%d",&stu[i].num);
printf("姓名:");
scanf("%s",stu[i].sname);
printf("语文:");
scanf("%d",&stu[i].score[0]);
printf("数学:");
scanf("%d",&stu[i].score[1]);
printf("英语:");
scanf("%d",&stu[i].score[2]);

stu[i].sum+=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];

printf("\n");
}

}
//输出函数print
//作者:钟
//时间:2022-4-21
//功能:按总分排序
//技术:冒泡排序
//变量:结构体变量
void sort(struct student stud[],int n)
{
int i,j;
struct student temp;
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(stud[j].sum>stud[j+1].sum)
{
temp=stud[j];
stud[j]=stud[j+1];
stud[j+1]=temp;
}
}
}
}


//输出函数print
//作者:林
//时间:2022-4-21
//功能:输出信息
//技术:
//变量:结构体变量
void print(struct student stu[])
{
int i;
printf("\n 学号 姓名 语文 数学 英语 总分\n");
printf("------------------------------------------------\n");
for(i=0;i<N;i++)
{
printf("%5d%10s%8d%8d%8d%8d",
stu[i].num,
stu[i].sname,
stu[i].score[0],
stu[i].score[1],
stu[i].score[2],
stu[i].sum);
printf("\n");
}
}


//主函数
int main()
{
input(stu);
sort(stu,N);
print(stu);
}

输出结果:

 

posted @   CC9898  阅读(326)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示