给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。 输入: 共2行: 第1行为N; 第2行为N个正整数,其间用空格间隔。 输出: 增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。 样例输入: 10 1 3 2 6 5 4 9 8 7 10 样例输出: 1,3,5,7,9 c++代码实现
时间: 2023-11-28 11:50:08 浏览: 155
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
vector<int> odds;
for (int i = 0; i < n; i++) {
if (nums[i] % 2 == 1) {
odds.push_back(nums[i]);
}
}
sort(odds.begin(), odds.end());
for (int i = 0; i < odds.size(); i++) {
if (i == 0) {
cout << odds[i];
} else {
cout << "," << odds[i];
}
}
cout << endl;
return 0;
}
```
相关问题
给定一个长度为n(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。
好的,以下是将给定的长度为n的正整数序列中的所有奇数取出,并按升序输出的代码示例:
```python
# 获取输入的正整数序列
n = int(input())
arr = list(map(int, input().split()))
# 从序列中筛选出所有奇数
odds = [num for num in arr if num % 2 == 1]
# 对筛选出的奇数序列进行升序排序
odds.sort()
# 输出结果
for num in odds:
print(num, end=' ')
```
希望这可以帮助您解决问题!
c语言给定一个长度为 N(不大于 500)的正整数序列,请将其中的所有奇数取出,并按升序输出
好的,我可以帮你写一个 C 语言程序解决这个问题。以下是代码:
```c
#include <stdio.h>
int main() {
int n, i, j, temp;
int a[500];
// 输入序列长度和序列元素
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
// 冒泡排序,将奇数按升序排在前面
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (a[j] % 2 == 0 && a[j+1] % 2 == 1) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
// 输出奇数序列
for (i = 0; i < n; i++) {
if (a[i] % 2 == 1) {
printf("%d ", a[i]);
}
}
printf("\n");
return 0;
}
```
程序的思路是先输入序列长度和元素,然后通过冒泡排序将奇数按升序排在前面,最后输出奇数序列。程序中用到了取余操作符 `%`,用来判断一个数是奇数还是偶数。
阅读全文