我是C语言初学者,请大神指教这样写为什么会多输出一个0?应该怎样改正?

//取出一个无符号的十进制整数中所有奇数数字,按原来的顺序组成一个新的数

# include<stdio.h>

int main()

{

int m=0,n,k;

do

{

scanf("%d",&n);

if(n<=0)

printf("数据输入错误,请重新输入");

}while(n<=0);

     for(k=n;k>0;k=k/10)

{

if((k%10)%2==1)

m=(k%10)+m*10;

}

while (m!=0)

{

printf("%d",m%10);

m=m/10;

}

printf("%d\n",m);

return 0;

}

 测试的时候总会多输出一个0,是哪里错了?

路卡利欧
浏览 1913回答 1
1回答

Yexiaomo

最简单的方法:   把最后 printf("%d\n", m);   这一行去掉你的问题就解决了........---------------------------------------------2016年10月13日 13:32---------------------------------------------------还有代码, 不要这样贴,  这样很少会有人看, 这样你的问题就得不到解决要这样贴,# include<stdio.h> int main() { int m=0,n,k; do { scanf("%d",&n); if(n<=0) printf("数据输入错误,请重新输入"); }while(n<=0);     for(k=n;k>0;k=k/10) { if((k%10)%2==1) m=(k%10)+m*10; } while (m!=0) { printf("%d",m%10); m=m/10; } return 0; }
打开App,查看更多内容
随时随地看视频慕课网APP