为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C
路卡利欧 2016-10-12 22:37:12
//取出一个无符号的十进制整数中所有奇数数字,按原来的顺序组成一个新的数# 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,是哪里错了?
查看完整描述

1 回答

已采纳
?
Yexiaomo

TA贡献152条经验 获得超157个赞

最简单的方法:   把最后 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;
}


查看完整回答
4 反对 回复 2016-10-13
  • 1 回答
  • 1 关注
  • 1912 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信