改错题      给定程序中函数fun的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
    例如,当s中的数为:7654321时,t中的数为:7531。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
    给定源程序:
    #include<stdio.h>
    /**********found**********/
    void fun(long s,long t)
    {long sl=10;
    *t=s%10;
    while(s>0)
    {s=s/100;
    *t=s%10*sl+*t;
    /**********found**********/
    sl=sl*100;
    }
    }
    main()
    {long s,t;
    printf('\nPlease enter s:');scanf('%ld',&s);
    fun(s,&t);
    printf('The result is:%ld\n',t);
    }
 
【正确答案】(1)void fun(lomg s,long *t) (2)sl=sl*10;
【答案解析】(1)主函数中调用函数的参数为地址,因此函数fun的形式参数应为指针类型。 (2)重新组合一个数,从个位开始,然后十位,依次类推,因此每增加一位数,原数值需乘以10,即“s1=sl*10;”。