给定程序MODIl.C中函数fun的功能是:计算正整数nUN的各位上的数字之积。 例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,

admin2016-10-29  37

问题 给定程序MODIl.C中函数fun的功能是:计算正整数nUN的各位上的数字之积。
    例如,若输入:252,则输出应该是:20。若输入:202,则输出应该是:0。
    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#inClude
long fun(long num)
{
/************found************/
  long k;
  do
  {  k*=num%1 0;
/************found************/
    num\=10;
  }while(num);
  return(k);
}
main()
{  long n ;
  printf("\nPlease.enter a number:");
scanf("%ld",&n);
  printf("\n%id\n",fun(n));
}

选项

答案(1)long k=1; (2)num/=10;

解析 (1)第一个错误标识下的k是函数的返回值,子函数fun中在执行“k*=hum%10;”之前,只进行了定义,却没有赋初值,编译时会警告变量在使用之前没有初始化k。k代表了各个位上的数字之积,其初值应为1。因此,第一个标识下的“long k;”改为“long k=1;”。
    (2)第二个标识下的符号“\”是非法字符,根据题意,这里应该是进行除法运算,所以“num\=10;”应该改为“num/=10;”。
转载请注明原文地址:https://kaotiyun.com/show/RjDp777K
0

最新回复(0)