关于剔除偶数并重新输出的简单方法。(续)

本篇续主页中的剔除偶数篇

具体问题及详细解释见上篇,

本篇主要讲用最简便的方法,最少的代码达到我们的目的。

(当然,可能还会有别的好方法。希望大家予以提点,以便后期完善本文,)

这里的方法我们大概说两种

1:不用数组,即从后往前依次判断,得到第一个奇数乘以1,第二个乘以10,依次处理,结果相加。当判断完最高位后跳出循环输出即可。

2:用数组:即从后往前,没得到一个奇数依次存入数组,最后逆序输出。

对于这个问题本人还是建议用循环解决。因为用数组的话数组长度的定义就成了一个问题,太长会白白占用过多内存,太短害怕会越界。

所以这里只对第一种方法进行编码,第二种大家可以拿来练练手,自己试着打一下。

#include<stdio.h>
int main()
{
int x,sum=0,a,s=1,y;
scanf("%d",&x);
for(a=x;a!=0;a/=10)
{
y=a%10;
if(y%2==1)
{
sum=y*s+sum;
s*=10;
}
}
printf("%d\n",sum);
return 0;
}
这样只用一个循环即可得出结果。会简便很多。
OK续集写完,还有什么不足的地方希望大家多多指出,我会加以改进和调整。
posted @ 2019-11-14 00:06  Mr小明同学  阅读(310)  评论(0编辑  收藏  举报