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
思路:先按要求输入 n,再将数组进行排序。最后将奇数用一个数组接收,最后利用i进行判断是否输出逗号(,),如果i等于最后一个数组下标,就不输出。
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[500],b[500];
int i,j,m=0;
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(a[i]<a[j]){
m=a[i];
a[i]=a[j];
a[j]=m;
}
}
}
int k=0;
for(i=0;i<n;i++){
if(a[i]%2!=0){
b[k++]=a[i];
}
}
for(i=0;i<k;i++){
printf("%d",b[i]);
if(i!=k-1){
printf(",");
}
}
return 0;
}
注意灵活处理逗号的问题,这是这个题的难点所在。(本人认为)