给定程序MODll.C中函数fun的功能是:从低位开始取出长整型变量S中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。 例如,当S中的数为:765432l时,t中的数为:642。 请改正程序中的错误,使它能得出正确的结

admin2015-06-08  35

问题 给定程序MODll.C中函数fun的功能是:从低位开始取出长整型变量S中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。
    例如,当S中的数为:765432l时,t中的数为:642。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
/**********found***********/
void fun(long s,long t)
{long s1=10;
    s/=10;
    *t=s%10;
/**********found***********/
    while(s<0)
    {  s=s/100;
    *t=s%10*s1 +*t;
    s1=s1*10;
    }
}
main()
{long s,t ;
  printf(“\nPlease enter s:”); scanf
(“%2d”,&s);
  fun(s,&t);
  printf(“The result is:%ld\n”,t);
}

选项

答案(1)void fun(long s, long *t) (2)while(s>0)

解析 函数目的是取出长整型变量s中偶数位上的数。
    (1)第一个标识下的形参t被定义为一个long型变量,而对应的主函数中的实参却是一个地址值。因此,t在函数定义中应该被定义为一个指针变量,即“void  fun(long s,long t)”改为“void fun(long s,long*t)”。
    (2)第二个标识下的while循环控制表达式“s<0”要求s小于0才进入循环。而s的值总是大于0,因此将“while(s<0)”改为“while(s>0)”。
转载请注明原文地址:https://kaotiyun.com/show/zaJp777K
0

最新回复(0)