《奇数单增序列》
题目
蒜头君给了一个长度为N(不大于500)的正整数序列(正整数的值不超过N),请将其中的所有奇数取出,并按升序输出。
输入格式
共 2 行:第 1 行为N;第2行为N个正整数,其间用空格间隔。
输出格式
增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。
Sample Input
10
1 3 2 6 5 4 9 8 7 10
Sample Output
1,3,5,7,9
题意
将数列中的奇数取出,递增排序
排序可以采用冒泡排序,也可以使用快速排序
思路
水题,基本数组操作
坑点
无
代码
#include<stdio.h>
using namespace std;
int main()
{
int n;//数列的长度
int num[505];//存储数列里面的数字
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&num[i]);//读入数据
}
for(int i=1;i<=n-1;i++)//从这里开始是冒泡排序
{
for(int j=0;j<n-i;j++)
{
if(num[j]>num[j+1])//如果前面的数比后面的数大,则进行交换
{
int temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}//冒泡排序结束
int f=0;//判断有无逗号
for(int i=0;i<n;i++)
{
if(num[i]%2!=0)//判断是否是奇数
{
if(f==1)//第一次循环时,f==0,不输出“,”
{ //从第二次开始时,f==1,输出“,”
printf(",");
}
printf("%d",num[i]);//输出排好序的奇数
f=1;//将f赋值为1
}
}
return 0;
}