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

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

输入格式
共 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

思路
由题意可得输入的数列不大于500,故应该用数组形式即m[500]并用循环的for语句输入,因需输出奇数且升序排列故应用if判断语句,最后需输出数列,且之间应用‘,’隔开且最后一个数字后面没有‘,’故也应用判断语句。

#include<stdio.h>
int main(){
	int n,i=0,a=0,m[500],num[500];
	scanf("%d",&n);//输入N
	for(i=0;i<n;i++){  
		scanf("%d",&m[i]);
		if(m[i]%2!=0){
			num[a]=m[i];//利用循环将奇数数列存到num[a]当中并且利用a++;得到共有多少个奇数。
			a++;
		}
	}
	for(i=0;i<a;i++){
		int sum=0,j=0;//定义新的字符。
		for(j=i;j<a;j++){  //将num[i]与num[j]进行比较并排序
			if(num[j]<num[i]){ //根据题意需升序输出
			sum=num[j];
			num[j]=num[i];
			num[i]=sum;
		}
		}
	}
	for(int j=0;j<a;j++){  //由之前所得到的数组中的奇数数目进行循环并输出
		printf("%d",num[j]);
		if(j!=a-1){
			printf(",");//题中输出后最后一个数字后没有‘,’故用if语句进行判断。
		}
	}
		return 0;
	}
	

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值