结构体对成绩进行排名
期末考试结束后要对同学们的考试成绩进行排序,张老师已经计算好了每一位同学的总成绩。请编写程序,输入每位同学的总成绩并输出一个按成绩高低排列的名次表。
该问题中,在成绩排序的同时,需要相应的学号和姓名一起随之变化。因此,我们可以使用结构体,学号、姓名、成绩以及名次作为结构体成员。通过对结构体对象成员(总成绩)的大小判断,实现把结构体对象作为一个整体进行排序操作。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>typedef struct student //声明结构体 student
{ char id[5]; //学生学号(四位)char name[40]; //学生姓名float score; //期末总成绩int num; //名次
}student; int main(int argc, char *argv[])
{student stu[100], temp; //定义结构体对象数组 stu 和临时对象 tempint i, j, n;printf("输入学生人数(1~100):");scanf("%d", &n);printf("-----------------------\n");for(i = 0; i < n; i++) { //输入学生成绩printf("学号输入9999则停止输入!\n");printf("学号(9999):"); scanf("%s", stu[i].id);if(strcmp(stu[i].id, "-1") == 0) {n = i;break;}printf("姓名:"); scanf("%s", stu[i].name);printf("总成绩:"); scanf("%f", &stu[i].score);}for(i = 0; i < n; i++) { //按成绩排序(冒泡法)for(j = i+1; j < n; j++) {if(stu[i].score < stu[j].score) {temp = stu[i];stu[i] = stu[j];stu[j] = temp;} //结构体变量整体交换}stu[i].num = i+1;}printf("----------------------------------\n");printf(" 学号 姓名 成绩 名次\n");for(i = 0;i < n; i++) { //输出名次printf("%6s",stu[i].id);printf("%10s",stu[i].name);printf("%12.2f",stu[i].score);printf("%6d\n",stu[i].num);} return 0;
}
运行结果:
结构体对成绩进行排名相关推荐
- c语言double ave,[编程入门]结构体之成绩统计2-题解(C语言代码)
解题思路: 运用结构体加数组即可 先求各成绩的平均数,再把所有学生作比较找到成绩最好的学生. 使用的代码比较简单基础. 参考代码:#include struct tagSTUDENT { char n ...
- 问题 1051: [编程入门]结构体之成绩统计2
题目描述 有N个学生,每个学生的数据包括学号.姓名.3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号.姓名.3门课成绩) 输入 学生数量N占一行每 ...
- c语言结构体 单科成绩排序,【查错】怎样让结构体其他信息(姓名)对应关键值(成绩)排序输出...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #define NMAX 10 #define n 10 struct stude ...
- c语言结构体多门成绩排序,c语言结构体按学号排序求大神帮忙改一下吧
struct record { char code[LEN+1]; /* 学号 */ char name[LEN+1]; /* 姓名 */ int age; /* 年龄 */ char sex[3]; ...
- PAT甲级1012 The Best Rank :[C++题解]4个成绩取排名最低:排序、二分(好题)
文章目录 题目分析 题目链接 题目分析 遇到的问题:信息存在结构体(✖)中,然后排名呢?需要分别对 C.M.E.A排四次吗? 这里成绩的存储 用二维数组 vector<int> q[4]; ...
- c语言用结构体交换名字,结构体赋值给另一个 结构体 如何定义 求大神了
定义了一个 输入学生信息的 结构体 通过比较 总成绩 排名 各个信息都要交换信息,我想定义另一个结构体 盛放它 完成交换 #include struct Student//定义储存学生信息的结 ...
- 学生成绩排名 (用结构体数组按成绩排名)
定义结构体struct stu,编写成绩排名函数:void sort(struct stu *ps,int n),对结构体数组按成绩排名. 程序功能为读入整数N(N<100),再读入N个学生的学 ...
- 6-2 综合成绩排名-结构体二 (100分)
6-2 综合成绩排名-结构体二 (100分) 众所周知,计算机院要对申请转入计算机大类的学生进行考核,考核方式包括机试和面试.学生综合成绩采取百分制,其中50%由机试成绩核算,另50%由学生已获得的加 ...
- c语言:成绩排名(结构体)
题目详情 定义结构体struct stu,编写成绩排名函数:void sort(struct stu *ps,int n),对结构体数组按成绩排名. 程序功能为读入整数N(N<100),再读入N ...
最新文章
- php 记录用户行为路径,用户行为路径分析方法
- remap(地址重映射)机制
- 做折线图坐标轴数字_你做的柱状图太丑了,这些美化技巧教给你(收藏)
- 人大计算机在职考研好考吗,人大在职研究生好考吗?通过率高吗?
- 移动端开发 自适应rem js文件
- Java 算法 数字分类
- 【java笔记】Stream流(2):获取流的两种方法
- 触发器(Trigger)的使用方法详解
- Python学习-第一天-函数和模块的使用
- NTP、PTP时间同步服务器(时钟系统)
- ubuntu中谷歌拼音输入法的简化字和繁体字的切换
- GDrive首次现身!
- 定时跑视图往另外一张表添加数据_聊一聊数据库中的锁
- 数据校验之Checksum算法
- 说完列表说字典,说完字典说集合,滚雪球学 Python
- 报错: Called “net usershare info“ but it failed
- 应该担心什么不应该关心什么(做正确的事,把事情做对)
- 如何编写敏捷开发中的user story
- 使用dd命令制作U盘启动盘
- 计算机组成与结构资源,计算机组成与系统结构-Selubc资源共享空间-home.ppt