PTA第2周——7-2找出同龄者

题目:

最近,小明开始班级大搜索,他已经知道了班级里每个人的年龄,并且把他们排成了一队,他将从排好队的人里按顺序把和自己同龄的人找出来,并请这些同龄人出队。

输入格式:

第一行输入一个N(0<n<100)表示有N个学生;

接下来有N行,每行两个数据,分别表示某个同学的名字和年龄;

最后一行包含一个整数,表示小明的年龄。

输出格式:

输出仅一行,包含若干学生的姓名,姓名与姓名之间用空格分隔,最后一个名字的末尾没有空格。表示小明的同龄者出队后,队伍中学生的排序。

输入样例:

3
张三 20
李四 22
王五 15
22

输出样例:

张三 王五

题意分析:

找出和小明同龄的人,并将其他人按顺序输出。

解题思路:

使用结构体存储队列里每个人的名字和年龄,然后循环进行判断,如果同龄不输出,非同龄则输出名字。

具体算法流程:

首先输入n,然后循环n次输入每个人的名字和年龄,最后输入b小明自己的年龄。接着进行循环,如果年龄和小明相同则不输出,年龄和小明不同则输出。(写完之后会发现输出的格式不正确,多出一行换行)此时对代码进行修改,先循环一遍判断有多少个人应该被输出,然后再循环进行输出,使用ans变量作为计数器,当输出到最后一行时不在换行。

实现细节(代码):

#include<bits/stdc++.h>
using namespace std;
int n,ans;
struct st {
	string name;
	int age;
	int t;
} a[105];
int b;
int main() {
	cin>>n;
	for(int i=1; i<=n; i++) {
		cin>>a[i].name>>a[i].age;
	}
	cin>>b;
	for(int i=1; i<=n; i++) {
		if(a[i].age!=b) {
			a[i].t=1;
			ans++;
		}
	}
	for(int i=1; i<=n; i++) {
		if(a[i].t==1) {
			if(ans==1) {
				cout<<a[i].name;
			} else {
				cout<<a[i].name<<" ";
				ans--;
			}
		}
	}
	return 0;
}

总结:

要注意题目中样例的输出格式,避免答案的格式错误造成不必要的失分。结构体的定义要准确,不要写错。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇