A-简单排序.

蒜头君给了一个长度为 N(不大于 500)的正整数序列(正整数的值不超过 N),请将其中的所有奇数取出,并按升序输出。

输入格式

共 2 行:

第 1 行为 N;

第 2 行为 N 个正整数,其间用空格间隔。

输出格式

增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。

输入

10
1 3 2 6 5 4 9 8 7 10

输出

1,3,5,7,9

解题思路:首先要明确,如何输入一组数;如何比较这组数比较大小;如何给这组数进行排序(例如:插入排序法,快速排序法等)。其次就是要灵活运用标记法;变通的输出格式,输出符合题目所要求的格式。总而言之,这道题的难点就是如何进行排序。

#include<stdio.h>
int main()
{
 int i,j,n,a[500],temp,set=1;
 scanf("%d",&n);//输入n个整数; 
 for(i=0;i<n;i++)//for循环; 
 {
  scanf("%d",&a[i]);//遍历数组a[i](相当于把n个数分给次数组);‘
  } 
  for(i=1;i<n;i++)//运用插入排序法 
  {
  temp=a[i];//将该数组给予媒介; 
     j=i-1;
     while(a[j]>temp&&j>=0)//判断每个数的大小并交换位置; 
     {
      a[j+1]=a[j];//赋值; 
      j--;//依此每个进行判断; 
  }
  a[j+1]=temp; //赋值; 
 }
 for(i=0;i<n;i++)//将排好的数进行重新排序; 
 {
  if(a[i]%2!=0)//判断是否为奇数; 
  {
   if(set==1)//标记法(目的为了输出格式); 
    {   
      printf("%d",a[i]);
    set=0;//与之前的标记不相符,换一种输出格式; 
    }
    else
    {
     printf(",%d",a[i]);
    }
  }
 }
 printf("\n");
 return 0;
}

 希望各位帅哥美女们看完能给个赞,顺手点个赞,支持一下,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值