关于剔除偶数并重新输出的简单方法。(续)
本篇续主页中的剔除偶数篇
具体问题及详细解释见上篇,
本篇主要讲用最简便的方法,最少的代码达到我们的目的。
(当然,可能还会有别的好方法。希望大家予以提点,以便后期完善本文,)
这里的方法我们大概说两种
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续集写完,还有什么不足的地方希望大家多多指出,我会加以改进和调整。
个人作品,
如有错误,请指出;
如要转载,请注明出处。
三克油。。