下列给定程序中函数fun的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t 中。高位仍在高位,低位仍在低位。例如当s中的数为87653142时,t中的数为7531。
请改正函数fun中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#include
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;
}
}
void main()
{long s, t;
system("CLS");
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)
此篇博客讲述了如何修复一个错误的函数fun,该函数原本用于从输入的长整型数中提取每一位为奇数的数字,并将其组成一个新的数。错误包括初始化变量*t和条件判断的修改。修正后的函数应能正确处理如87653142这样的输入,输出结果为7531。
5852

被折叠的 条评论
为什么被折叠?



