【1177】奇数单增序列

【问题描述】
       给定一个长度为n(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。
【输入】
       第1行为n;
       第2行为n个正整数,其间用空格间隔。
【输出】
       增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。
【输入样例】
       10
       1 3 2 6 5 4 9 8 7 10
【输出样例】
       1,3,5,7,9
【参考程序】

#include <cstdio>
#include <iostream>

using namespace std;

int main() {
	int a[1001];							// a存储原始整数
	int b[1001];							// b存储原始奇数
	int n, k=0;
	
	scanf("%d", &n);
	for (int i=1; i<=n; i++) {				// 输入数据 
		scanf("%d", &a[i]);
		if (a[i] % 2 != 0) {				// 将奇数全部取出单独存放 
			k++;
			b[k] = a[i];
		}
	}
	
	for (int i=1; i<=k-1; i++) {			// 从小到大,选择排序 
		for (int j=i+1; j<=k; j++) {
			if (b[i] > b[j]) {
				swap(b[i], b[j]);			// 当满足条件,则进行交换 
			}
		}
	}
	
	for (int i=1; i<=k-1; i++) {
		printf("%d,", b[i]);				// 输出时处理逗号 
	} 
	printf("%d\n", b[k]);	
	
	return 0;
}
发布了49 篇原创文章 · 获赞 0 · 访问量 1035

猜你喜欢

转载自blog.csdn.net/developer_zhb/article/details/105455111