改错题 下列给定程序中,函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中,高位仍在高位,低位仍在低位,当s中的数为87653142时,t 中的数为7531。
请改正程序中的错误,使其能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题 程序:
#include <conio.h>
#include <stdio.h>
void fun(long s, long *t)
{
int d;
long s1 = 1;
/********found********/
t = 0;
while (s > 0)
{
d = s%10;
/********found********/
if (d%2 == 0)
{
*t = d*s1 + *t;
s1 *= 10;
}
s /= 10;
}
}
main()
{
long s, t;
printf("\nPlease enter s: ");
scanf("%ld", &s);
fun(s, &t);
printf("The result is: %ld\n", t);
}
第1处:t =0;应改为*t =0;
第2处:if (d%2 ==0)应改为if(d%2!=0)