OJ #207. 评奖2

news2024/11/27 4:20:37

题目描述

​ 山治同学所在的班级共有 N名同学,期末考试时进行了数学、语文、英语、地理四门功课的 测试。现要将班里总分最高的同学评为“学习小状元”。​
如 3 名学生,4 门课程的成绩如下:

数学 语文 英语 地理
hong 98 90 87 74
Ming 96 92 85 97
zhang 95 78 56 91
请同学们帮助计算:

每位同学的总分是多少?
找出总分最高的那位同学。
找出所有成绩中最高的分数和最小的分数。

输入

​ 输入共有 2N+1 行:​ 第一行:有一个整数 N,表示有N 名同学(已知 1≤N≤30)。​ 后 2N行,
每两行代表一个人的信息记录:包括学生的姓名及 4 门功课的分数:其中分数为 数,每个分数互不相同(不需判断),各数据之间空 1 个格。

输出

输出共有 N+2 行:前 N​ 行:每行一个数据是每位同学的总分;
​第 N+1 行:是总分最高的那位同学的姓名​
第 N+2 行:是所有成绩中最高的分数和最小的分数(数据之间空1格)。

样例输入1

3
hong
98 90 87 74
ming
96 92 85 97
zhang
95 78 56 91

样例输出1

349
370
320
ming
98 56

代码

#include <stdio.h>
#include <stdlib.h>

struct stu {
  char name[10];
  int score[4];
  int sum;
};

int main () {
  int n;
  scanf("%d", &n);
  struct stu* student;
  // 动态分配结构体数组空间
  student = (struct stu*) calloc(n, sizeof(struct stu));

  for (int i = 0; i < n; i++) {
    scanf("%s\n%d%d%d%d", 
    student[i].name, 
    &student[i].score[0], 
    &student[i].score[1], 
    &student[i].score[2], 
    &student[i].score[3]);
    for (int j = 0; j < 4; j++) {
      student[i].sum += student[i].score[j];
    }
  }
  // 选择排序法,对结构体数组进行排序
  int maxScore, minScore;
  maxScore = minScore =  student[0].score[0];
  for (int i = 0; i < n; i++) {
   // 每位同学的总分
    printf("%d\n", student[i].sum);
    for (int j = 0; j < 4; j++) {
      if (maxScore < student[i].score[j]) maxScore = student[i].score[j];
      if (minScore > student[i].score[j]) minScore = student[i].score[j];
    } 
  }
  // 排序
  for (int i = 0; i < n - 1; i++) {
    for (int j = i + 1; j < n; j++) {
      if (student[i].sum > student[j].sum) {
        struct stu t;    
        t = student[i];
        student[i] = student[j];
        student[j] = t;
      }
    }
  }
  
  // 总分最高的同学姓名
  printf("%s\n", student[n - 1].name);
  printf("%d %d", maxScore, minScore);
  free(student); // 释放内存
  return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/615783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive学习---5、分区表和分桶表

1、分区表和分桶表 1.1 分区表 Hive中的分区就是把一张大表的数据按照业务需求分散的存储到多个目录&#xff0c;每个目录就称为该表的一个分区。在查询时通过where子句中的表达式选择查询所需要的分区&#xff0c;这样的查询效率会提高很多。 1.1.1 分区表基本语法 1、创建…

树莓派VNC控制报错:The connection was refused by the computer 已解决

在进行VNC远程操控树莓派的时候&#xff0c;出现了这个错误&#xff1a;The connection was refused by the computer。 大概原因有两个&#xff1a;一个是树莓派的IP地址更改了&#xff0c;另一个就是树莓派的VNC服务没有开启。 我的这块板子是个新板子&#xff0c;原因很显…

软件测试理论

测试理论 一 测试定义及原则 1 软件定义 一些列按着特定顺序组织的计算机数据和指令的集合&#xff1a; 软件 数据 指令 文档 2 软件分类 工具类软件游戏类软件电商类软件社交类软件教育类软件等 3. 软件架构分类 单机软件&#xff1a; office、红警等分布式软件 C/…

煤矿井下定位设备,实现特殊环境下人员安全管理

煤矿、金属矿山等地下作业场所的安全管理工作要求高、难度大&#xff0c;矿用人员定位系统通过实时定位等功能&#xff0c;可以帮助企业随时掌握作业人员的位置安全&#xff0c;提高生产和安全管理效率&#xff0c;并可在紧急情况时迅速采取措施&#xff0c;减少事故损失&#…

云原生容器安全检测有多难?安全狗云原生安全新版六招“泰酷辣”

想借助大规模部署和使用容器应用来提升业务系统开发速度&#xff1f;那你一定会发现&#xff0c;大量的数据对象、多种安全风险都需要检测&#xff0c;容器的安全检测难度增加了&#xff01; 安全狗发现众多企业用户对安全的要求不再停留在“能用就好”的程度&#xff0c;于是新…

5种超超超实用的TikTok选品方法

是不是有很多人在做TikTok Shop时不知道该如何选品&#xff0c;面对琳琅满目的产品纠结该上哪款产品呢&#xff1f;今天就给大家介绍5种超实用的TikTok选品方法。 一、选品方法 1.从用户需求方面入手 做TikTok面向的是国外&#xff0c;所以选品时不能以国内的市场需求做参考&…

深入剖析SQL JOIN原理,助你掌握数据连接的奥秘!

大家好&#xff0c;我是小米&#xff0c;在技术的海洋中畅游的小编。今天&#xff0c;我要带你探索SQL JOIN的神奇原理&#xff0c;为你解锁高效数据查询的技巧&#xff01;无论你是初学者还是资深开发者&#xff0c;相信这篇文章都能给你带来新的启发。废话不多说&#xff0c;…

算法技巧-双指针

欢迎关 Android茶话会 回 pdf 取阿里&字节经典面试题、Android、算法、Java等系列武功秘籍 在技术学习、个人成长的道路上&#xff0c;让我们一起前进&#xff01; 前言 双指针技巧在算法题中算是常用技巧了&#xff0c;让我们省去for循环&#xff0c;降低复杂度&#xff…

第二十章_Redis分布式锁Redlock算法和底层源码分析

当前代码为8.0版接上一步 自研一把分布式锁&#xff0c;面试中回答的主要考点 按照JUC里面java.util.concurrent.locks.Lock接口规范编写 lock()加锁关键逻辑 加锁的Lua脚本&#xff0c;通过redis里面的hash数据模型&#xff0c;加锁和可重入性都要保证 加锁不成&#xff0c;…

NLP面经集结 | 达摩院、腾讯、微软、美团、百度

作者 | Codle 整理 | NewBeeNLP 面试锦囊之面经分享系列&#xff0c;持续更新中 赶紧后台回复"面试"加入讨论组交流吧 写在前面 本人情况&#xff1a;双非本末流985研二&#xff0c;爱奇艺NLP日常实习经历&#xff0c;无论文&#xff0c;投的都是 NLP 算法岗。 目前…

Ansible基础5——条件语句、循环语句、handlers、任务失败处理

文章目录 一、 循环语句1.1 单量循环1.2 多量循环1.3 老版本用法1.4 loopregister 二、条件判断2.1 根据变量状态判断2.2 根据变量是否存在判断2.3 根据事实判断2.4 多条件判断2.4.1 and用法2.4.2 or用法 2.5 循环判断2.6 根据上个任务结果判断 三、handlers处理程序四、任务失…

CDGA 认证:第十二章 元数据管理(重点章节)习题集解析

1. 以下内容不属于元数据综合解决方案功能需求点的是 ( ) A 历史信息 B 存储容量 C 运维要求 D 安全要求 【答案解析】DAMA-DMBOK2 P334 2. 关于 ISO/IEC 11179 元数据注册标准的说法正确的是:( ) A 该标准由 6 个部分组成 B 该标准用于定义元数据注册的框架 C 该标准包含…

Express+vue.js+nodejs银行排队取号系统

开发语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;VScode 系统主要包括系统用户中心、显示管理、用户管理、排队管理、服务业务管理、用户评价管理、等候区管理等功能模块。 (a) 管理员&am…

00后求你善良,不要这么卷了...

前几天我们公司一下子也来了几个新人&#xff0c;这些年前人是真能熬啊&#xff0c;本来我们几个老油子都是每天稍微加会班就打算走了&#xff0c;这几个新人一直不走&#xff0c;搞得我们也不好走。 2023年春招结束了&#xff0c;最近内卷严重&#xff0c;各种跳槽裁员&#x…

Studio One6新生代DAW数字音频工作站

提到编曲软件&#xff0c;就不得不说这款水果编曲软件。它对新手和老手都比较友好&#xff0c;是一款较为经典的编曲软件。 这款软件提供了强大而全面的音符、音效编辑器&#xff0c;可以在其中插入各种乐器声音&#xff0c;如果内置乐器无法满足编曲需求&#xff0c;还可以外…

数据结构-递归

递归 概述 定义 计算机科学中&#xff0c;递归是一种解决计算问题的方法&#xff0c;其中解决方案取决于同一类问题的更小子集 In computer science, recursion is a method of solving a computational problem where the solution depends on solutions to smaller instan…

Web大前端时代之:HTML5+CSS3入门系列

Old: 联系源码&#xff1a;GitHub - dunitian/LoTHTML5: LoT家族的一员~HTML5系列 文档下载&#xff1a;https://github.com/dunitian/LoTDotNet/ 思维导图&#xff08;不断更新&#xff09;&#xff1a; 图片&#xff1a;http://dnt.dkill.net/DNT/HTML5/index.jpg 源码&#…

超级全面的100个思维导图模板

思维导图是一款有效提升生活以及工作的效率工具。使用思维导图有非常多的好处。 思维导图可以用在我们生活的方方面面&#xff0c;以及各种各样的学科中。 接下来给大家分享不同的思维导图模板&#xff0c;希望可以帮助到大家。 一、读书笔记类 1、西游记 2、《战胜拖拉》读…

RabbitMQ - 简单案例

RabbitMQ - 简单案例 Hello worldWork Queues轮训分发消息消息应答自动应答手动消息应答的方法消息自动重新入队消息手动应答代码 RabbitMQ 持久化不公平分发 预取值分发 Hello world 我们将用 Java 编写两个程序。发送单个消息的生产者和接收消息并打印出来的消费者 在下图中…

Java实现Mqtt收发消息

Java实现Mqtt收发消息 文章目录 Java实现Mqtt收发消息windows mqtt 平台服务搭建mqtt 客户端工具&#xff1a;mqttbox整体代码结构mqtt基础参数配置类mqtt客户端连接mqtt接收的消息处理类对应的MqttService注解和MqttTopic注解 MqttGateway 发送消息指定topic接收处理方法 java…