期末考试结束后要对同学们的考试成绩进行排序,张老师已经计算好了每一位同学的总成绩。请编写程序,输入每位同学的总成绩并输出一个按成绩高低排列的名次表。

该问题中,在成绩排序的同时,需要相应的学号和姓名一起随之变化。因此,我们可以使用结构体,学号、姓名、成绩以及名次作为结构体成员。通过对结构体对象成员(总成绩)的大小判断,实现把结构体对象作为一个整体进行排序操作。

#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;
}

运行结果:

结构体对成绩进行排名相关推荐

  1. c语言double ave,[编程入门]结构体之成绩统计2-题解(C语言代码)

    解题思路: 运用结构体加数组即可 先求各成绩的平均数,再把所有学生作比较找到成绩最好的学生. 使用的代码比较简单基础. 参考代码:#include struct tagSTUDENT { char n ...

  2. 问题 1051: [编程入门]结构体之成绩统计2

    题目描述 有N个学生,每个学生的数据包括学号.姓名.3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号.姓名.3门课成绩) 输入 学生数量N占一行每 ...

  3. c语言结构体 单科成绩排序,【查错】怎样让结构体其他信息(姓名)对应关键值(成绩)排序输出...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #define NMAX 10 #define n 10 struct stude ...

  4. c语言结构体多门成绩排序,c语言结构体按学号排序求大神帮忙改一下吧

    struct record { char code[LEN+1]; /* 学号 */ char name[LEN+1]; /* 姓名 */ int age; /* 年龄 */ char sex[3]; ...

  5. PAT甲级1012 The Best Rank :[C++题解]4个成绩取排名最低:排序、二分(好题)

    文章目录 题目分析 题目链接 题目分析 遇到的问题:信息存在结构体(✖)中,然后排名呢?需要分别对 C.M.E.A排四次吗? 这里成绩的存储 用二维数组 vector<int> q[4]; ...

  6. c语言用结构体交换名字,结构体赋值给另一个 结构体 如何定义 求大神了

    定义了一个 输入学生信息的 结构体 通过比较 总成绩  排名   各个信息都要交换信息,我想定义另一个结构体 盛放它  完成交换 #include struct Student//定义储存学生信息的结 ...

  7. 学生成绩排名 (用结构体数组按成绩排名)

    定义结构体struct stu,编写成绩排名函数:void sort(struct stu *ps,int n),对结构体数组按成绩排名. 程序功能为读入整数N(N<100),再读入N个学生的学 ...

  8. 6-2 综合成绩排名-结构体二 (100分)

    6-2 综合成绩排名-结构体二 (100分) 众所周知,计算机院要对申请转入计算机大类的学生进行考核,考核方式包括机试和面试.学生综合成绩采取百分制,其中50%由机试成绩核算,另50%由学生已获得的加 ...

  9. c语言:成绩排名(结构体)

    题目详情 定义结构体struct stu,编写成绩排名函数:void sort(struct stu *ps,int n),对结构体数组按成绩排名. 程序功能为读入整数N(N<100),再读入N ...

最新文章

  1. php 记录用户行为路径,用户行为路径分析方法
  2. remap(地址重映射)机制
  3. 做折线图坐标轴数字_你做的柱状图太丑了,这些美化技巧教给你(收藏)
  4. 人大计算机在职考研好考吗,人大在职研究生好考吗?通过率高吗?
  5. 移动端开发 自适应rem js文件
  6. Java 算法 数字分类
  7. 【java笔记】Stream流(2):获取流的两种方法
  8. 触发器(Trigger)的使用方法详解
  9. Python学习-第一天-函数和模块的使用
  10. NTP、PTP时间同步服务器(时钟系统)
  11. ubuntu中谷歌拼音输入法的简化字和繁体字的切换
  12. GDrive首次现身!
  13. 定时跑视图往另外一张表添加数据_聊一聊数据库中的锁
  14. 数据校验之Checksum算法
  15. 说完列表说字典,说完字典说集合,滚雪球学 Python
  16. 报错: Called “net usershare info“ but it failed
  17. 应该担心什么不应该关心什么(做正确的事,把事情做对)
  18. 如何编写敏捷开发中的user story
  19. 使用dd命令制作U盘启动盘
  20. 计算机组成与结构资源,计算机组成与系统结构-Selubc资源共享空间-home.ppt

热门文章

  1. 【java】批量插入数据库数据
  2. PDO预处理prepare
  3. Blod对象下载文件
  4. 3D虚拟现实到底是什么
  5. 21 个好用的持续集成工具
  6. 爆火的 ChatGPT 太强了!写代码、改 bug,网友:可取代 Stack Overflow 了
  7. Linux Ubantu 常用指令
  8. 【干货】Linux 系统故障排查和修复技巧
  9. C++ static 的作用
  10. Linux_起源和虚拟机