c语言大神帮我看看,为什么结果输出不对,输入27638496,要求结果64862

c语言大神帮我看看,为什么结果输出不对,输入27638496,要求结果64862#include<stdio.h>
unsigned long get_even(unsigned long n)
{unsigned long x=0;
int t;
while(n)
{t=n%10;
if(t%2==0)
x=x*10+t;
n=n/10;
}
return x;
}
int main()
{unsigned long n=-1;
while(n>99999999||n<0)
{ printf("请输入一个无符号整数,范围:(0<n<100000000):");
scanf("%1d",&n);
}
printf("\nThe result is:%1d\n",get_even(n));
}

你的主函数main 里的输入输出语句的标示符%1d写错了,应该是%ld(小写的LD)而不是%1d(数字1小写D),把main函数中的scanf("%1d",&n);改成scanf("%ld",&n); 把printf("\nThe result is:%1d\n",get_even(n));改成printf("\nThe result is:%ld\n",get_even(n));就没有问题了.
温馨提示:答案为网友推荐,仅供参考
相似回答