蒜头君给了一个长度为 NN(不大于 500500)的正整数序列(正整数的值不超过 NN),请将其中的所有奇数取出,并按升序输出。
输入格式
共 22 行:
第 11 行为 NN;
第 22 行为 NN 个正整数,其间用空格间隔。
输出格式
增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数
#include <stdio.h>
#include <math.h>
int main()
{
int n,i,m=0,l=0,t,q;
scanf("%d",&n);
int a[n],s[500];
for(i=0;i<n;++i)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;++i)
{
if(a[i]%2!=0)/*为确保最后一个数后边没有逗号,输出另s数组 */
{
s[l]=a[i];
++l;//确定s数组的长度
}
}
for(i=1;i<l;++i)
{
for(q=i;q>=1;--q)
{
if(s[q]<s[q-1])
{
t=s[q];
s[q]=s[q-1];
s[q-1]=t;
}
}/*对s数组进行排序*/
}
for(i=0;i<l;++i)
{
if(i<=l-2)// 输出s数组除最后一个元素 的所有元素
printf("%d,",s[i]);
if(i==l-1)//输出s数组最后一个元素
printf("%d",s[i]);
}
return 0;
}
因为无法确定a数组符合条件的元素的位置,所以将符合条件的元素赋给s数组,并用++l确定s数组的元素个数