#include<stdio.h>
struct student{    //定义一个结构体数组
int num;
char name[11];
float g1;
float g2;
float g3;
float aver;
};
int main(){
student stu[101],s;//student为结构体类型,stu为名字,此处定义一个结构体数组
int N,i,j;
scanf("%d\n",&N);
for(i=0;i<N;i++){
scanf("%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].g1,&stu[i].g2,&stu[i].g3);//结构体内容的输入stu[].什么元素(注意对应的变量类型(字符串为%s))
stu[i].aver=(stu[i].g1+stu[i].g2+stu[i].g3)/3;
}
for(i=0;i<N-1;i++){
for(j=i+1;j<N;j++){
if(stu[i].aver<=stu[j].aver) {
s=stu[i];stu[i]=stu[j];stu[j]=s;
}
if(stu[i].aver==stu[j].aver){ //如果平均成绩一样,按照学号从小到大排
if(stu[i].num>stu[j].num){
s=stu[i];stu[i]=stu[j];stu[j]=s;
}
}
}
}
for(i=0;i<N;i++){
printf("%d %s %.1f\n",stu[i].num,stu[i].name,stu[i].aver);//结构体对应内容的输出
}
return 0;
}

  

西电oj245 成绩统计 结构体数组使用的更多相关文章

  1. C语言利用结构体数组实现学生成绩管理系统

    这篇文章主要为大家详细介绍了C语言利用结构体数组实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 要求: 某班有最多不超过30人(具体人数由键盘输入) ...

  2. C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)

    题目内容: 利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号.姓名和三门课(高数.物理和英语 )的成绩和平均分(整型). 编写程序,从键盘输入学生的人数,然后依次输入每个学生的学号. ...

  3. 【C语言入门教程】7.2 结构体数组的定义和引用

    7.2 结构体数组的定义和引用 当需要使用大量的结构体变量时,可使用结构体定义数组,该数组包含与结构体相同的数据结构所组成的连续存储空间.如下例所示: struct student stu_a[50] ...

  4. 结构体数组(C++)

    1.定义结构体数组 和定义结构体变量类似,定义结构体数组时只需声明其为数组即可.如: struct Student{ int num; char name[20]; char sex[5]; int ...

  5. matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段

    一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...

  6. golang结构体数组

    转自: https://www.liaotaoo.cn/200.html package main import "fmt" type student struct{ id int ...

  7. C#调用C/C++动态库 封送结构体,结构体数组

    一. 结构体的传递 #define JNAAPI extern "C" __declspec(dllexport) // C方式导出函数 typedef struct { int ...

  8. Delphi结构体数组指针的问题

    //这段代码在Delphi 2007和delphi 7下是可以执行的,所以正确使用结构体数组和指针应该是这样的,已验证 unit Unit1; interface uses Windows, Mess ...

  9. C语言中的结构体,结构体数组

    C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存 ...

  10. c语言学习之基础知识点介绍(十七):写入读取结构体、数组、结构体数组

    一.结构体的写入和读取 //写入结构体 FILE *fp = fopen("/Users/ios/Desktop/1.data", "w"); if (fp) ...

随机推荐

  1. 安装.msi格式安装包

    msi格式的文件,点右键后,没有"以管理员身份运行"的菜单项,直接运行.msi文件报错:"There is a problem with this Windows Ins ...

  2. MogDB 学习笔记之 -- truncate 属于dml语句

    # 概念描述验证create 语句.alter 语句.truncate语句.drop语句 是属于ddl 还是dml # 测试验证 1.环境准备 ```修改log_statement 参数miao=# ...

  3. Hook新特性(一)

    基础Hook 1.useState const [state, setState] = useState(initialState); //返回一个state变量,指为initialState,set ...

  4. laravel 内置auth()登录

    auth()命令 auth()->attempt()        登录验证 auth()->check        判断是否登录,有没有session缓存 auth()->log ...

  5. MySQL 常用命令(3)------表基本操作

    五.表的基本操作 1.创建表 语法:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]); ...

  6. Unity3D发布Android注意事项

    当你制作完一款游戏,准备发布Android平台时,需要进行一些设置.如下: 一.设置AndroidSDK路级和JDK路径 AndroidSDK目录可以通过AndroidStudio查看,如下: 这个路 ...

  7. 运维权限系统之 OpenLDAP(干货)

    系统环境:CentOS7 一.OpenLDAP 1,开始安装(使用yum源码安装) yum install openldap openldap-servers openldap-clients ##拷 ...

  8. leecode 19 快慢指针

    记录leecode刷题思路 19. 删除链表的倒数第 N 个结点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 示例 1: 输入:head = [1,2,3,4,5], n = ...

  9. Unity异步加载场景与加载进度条

    先上效果图 需要三个场景 1,2, 3 从场景1跳转到场景3,场景2是加载场景 场景1按钮的代码如下 using System.Collections; using System.Collection ...

  10. Typora中的emoji表情

    People  :smile:  :laughing:  :tired_face:  :blush:  :smiley: ️ :relaxed:  :smirk:  :heart_eyes:  :ki ...