02:奇数单增序列

总时间限制: 1000ms 内存限制: 65536kB
描述
给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。

输入
共2行:
第1行为 N;
第2行为 N 个正整数,其间用空格间隔。
输出
增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。
样例输入
10
1 3 2 6 5 4 9 8 7 10
样例输出
1,3,5,7,9
解析
将奇数装入一个新的数组,使用直接插入排序,最后将结果输出

#include<iostream>
using namespace std;
void insertSort(int a[],int n){
	int i,j;
	for(int i=2;i<=n;i++){
		if(a[i]<a[i-1]){
			a[0]=a[i];
			for(j=i-1;a[0]<a[j];j--){
				a[j+1]=a[j];
			}
			a[j+1]=a[0];
		}
	}
}
int main(){
	int N;
	cin>>N;
	//a数组装输入的数据,b数组装输入的奇数
	int a[N+5];
	int b[N+5];
	
	int k=0;
	for(int i=1;i<=N;i++){
		cin>>a[i];
		if(a[i]%2==1){
			b[++k]=a[i];
		}
	}
	//对奇数进行由小到大的排序
	insertSort(b,k);
        //输出排序后的结果
	cout<<b[1];
	for(int i=2;i<=k;i++){
		cout<<','<<b[i];
	}
	
	return 0;
}
发布了36 篇原创文章 · 获赞 0 · 访问量 335

猜你喜欢

转载自blog.csdn.net/weixin_44437496/article/details/104053034