IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 宿舍谁最高?(类和对象、对象数组C++) -> 正文阅读

[C++知识库]宿舍谁最高?(类和对象、对象数组C++)

描述

学校选拔篮球队员,每间宿舍最多有 4 个人。现给出宿舍列表,请找出每个宿舍最高的同学。定义一个学生类 Student,有身高 height,体重 weight 等。????????????????????????????????????????????????????????????????????????????????????????????????

主函数main()如下:????????????????????????????????????????????????????????????????????????????????????????????????

int main() {
	int n, room, height, weight;
	string name;
	// Input
	cin >> n;
	Student students[n];
	for (int i = 0; i < n; i++) {
		cin >> room >> name >> height >> weight;
		students[i].setData(room, name, height, weight);
	}
	// Calculate & Output
	roomSort(students, n);  // 按照学生的宿舍号从小到大排序
	maxHeight(students, n); // 输出各个宿舍里最高的学生信息
	return 0;
}

?输入

首先输入一个整型数?n?(1≤n≤10^6),表示有?n?位同学。????????????????????????????????????????????????????????????????????????????????????????????????

紧跟着?n?行输入,每一行格式为:宿舍号 name height weight
宿舍号的区间为 [0, 999999],?name?由字母组成,长度小于 16,heightweight?为正整数。????????????????????????????????????????????????????????????????????????????????????????????????

输出

按宿舍号从小到大排序,输出每间宿舍身高最高的同学信息。题目保证每间宿舍只有一位身高最高的同学。????????????????????????????????????????????????????????????????????????????????????????????????

注意宿舍号不足 6 位的,要按 6 位补齐前导 0。????????????????????????????????????????????????????????????????????????????????????????????????

输入输出示例

输入输出
示例 1
7
000000 Tom 175 120
000001 Jack 180 130
000001 Hale 160 140
000000 Marry 160 120
000000 Jerry 165 110
000003 ETAF 183 145
000001 Mickey 170 115
000000 Tom 175 120
000001 Jack 180 130
000003 ETAF 183 145

?

#include<iostream>
#include<algorithm>
#include<iomanip>
using namespace std;
class Student{
	public:
	int room,height,weight;
	string name;
		void setData(int r,string na,int hei,int wei){
			this->room=r;
			this->name=na;
			this->height=hei;
			this->weight=wei;
		}
};
int zll[1000000];//初始化全为零,下表指宿舍号,内部值为身高。 
int main()
{
	int n, room, height, weight;
	string name;
	cin>>n;
	Student d[n];
	for(int i=0;i<n;i++){
		cin >> room >> name >> height >> weight;//此处与类中函数成员用名相同,类中必须定为公有。 
		if(zll[room]<height){//找到相同下标(宿舍号)且比以往存的值大,则将其赋值给zll【】,更新数据。 
			zll[room]=height;
			d[room].setData(room, name, height, weight);//不断更新赋值,将相同宿舍中身高最高的所有数据记录下来。 
		}
	}
	for(int i=0;i<n;i++){//现在的循环中,i指的就是宿舍号。为什么n不是1000000,因为测试中宿舍号小于n,写1000000也no problem。 
		if(zll[i]!=0){//若等于零说明该宿舍没有参与或不存在。 
			cout << setw(6) << setfill('0') << d[i].room;//因为每个宿舍号记录的是最高身高的所有数据,直接输出即可。 
		cout<<" "<<d[i].name<<" "<<d[i].height<<" "<<d[i].weight<<endl;
		}
	}
	return 0;
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:22:53  更:2022-04-18 17:26:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:06:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码