【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-奇数序列排序
C++ L13 奇数序列排序
-
给定一个长度为N的正整数序列,
-
请将其中的所有奇数取出,并按增序(从小到大)输出。
-
输入:
共2行
第1行是一个正整数 N(不大于500);
第2行有 N 个正整数(小于100,000),相邻两数之间用空格隔开。
- 输出:
输出1行,为增序的奇数序列,两数之间以英文逗号分隔。
题目数据保证至少有一个奇数。
注意:输出数据不得有多余的逗号
- 输入样例:
10
10 3 8 6 7 4 9 5 2 1
- 输出样例:
1,3,5,7,9
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int N;
cin >> N;
// 定义存储奇数的数组,初始长度为输入的正整数 N
int arr[N];
int oddCount = 0;
for (int i = 0; i < N; i++) {
int num;
cin >> num;
// 判断输入的数是否为奇数
if (num % 2!= 0) {
// 将奇数存入数组并计数
arr[oddCount++] = num;
}
}
// 对存储奇数的数组进行排序
sort(arr, arr + oddCount);
for (int i = 0; i < oddCount; i++) {
cout << arr[i];
// 判断是否为最后一个奇数,决定是否输出逗号
if (i < oddCount - 1) {
cout << ",";
}
}
return 0;
}