【GESP】C++三级练习 luogu-B3661, [语言月赛202209] 排排队
三级知识点一维数组练习,除了应用了数组以外,其余逻辑比较简单,适合初学者。
luogu-B3661
题目要求
描述
在幼儿园中有 $n$ 个小朋友,每个小朋友都有一个学号。
老师的要求是:学号为奇数的小朋友站一排,学号为偶数的小朋友站一排。
提示:
奇数:个位数为 $1, 3, 5, 7, 9$ 的数字,满足除以 $2$ 的余数为 $1$。
偶数:个位数为 $0, 2, 4, 6, 8$ 的数字,满足除以 $2$ 的余数为 $0$。
输入
共两行,第一行一个数字 $n$,表示有 $n$ 个小朋友。
第二行共 $n$ 个数字,其中第 $i$ 个数字 $a_i$ 表示第 $i$ 个小朋友的学号。
输出
共两行,第一行一些数字,表示学号为奇数的小朋友的学号,按照输入的顺序输出。即,如果一个数字输入的时候在前,那么输出的时候也应当在前。
第二行一些数字,表示学号为偶数的小朋友的学号,按照输入的顺序输出。
保证小朋友的学号既有奇数,又有偶数。
输入样例-1
5
1 2 3 4 5
输出样例-1
1 3 5
2 4
输入样例-2
5
5 2 3 1 4
输出样例-2
5 3 1
2 4
题目分析
- 读取小朋友数量n的值
- 读取n个小朋友的学号,存储到数组中
- 遍历数组中的学号
- 输出学号为奇数的小朋友的学号
- 换行
- 输出学号为偶数的小朋友的学号
示例代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;
int main() {
int n; // 读取数组长度
cin >> n;
int* input_array = new int[n]; // 动态分配数组空间
for (int i = 0; i < n; i++) {
cin >> input_array[i]; // 读取数组元素
}
// 打印奇数
for (int i = 0; i < n; i++) {
if (input_array[i] % 2 != 0) {
cout << input_array[i] << " ";
}
}
cout << endl; // 换行,分隔奇数和偶数
// 打印偶数
for (int i = 0; i < n; i++) {
if (input_array[i] % 2 == 0) {
cout << input_array[i] << " ";
}
}
return 0;
}
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
题目已加入洛谷Java、C++初学团队,作业清单,可在线评测,团队名额有限,欢迎加入。
本文由作者按照 CC BY 4.0 进行授权