2021-10-27新生训练赛 奇数单增序列


《奇数单增序列》


题目

蒜头君给了一个长度为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;
}

猜你喜欢

转载自blog.csdn.net/Autumn_snow/article/details/121018434
今日推荐