//取出一个无符号的十进制整数中所有奇数数字,按原来的顺序组成一个新的数# 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;
}- 1 回答
 - 1 关注
 - 2004 浏览
 
添加回答
举报
0/150
	提交
		取消
	