给定程序MODll.C中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。 请改正函数f

admin2015-06-08  18

问题 给定程序MODll.C中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
int fun(unsigned n,int *zero)
{  int count=0,max=0,t;
    do
    {t=n%10;
/**********found***********/
    if(t=0)
    count++;
    if(max    n=n/10;
    )while(n);
/**********found***********/
    zero=count;
    return max;
}
main()
{unsiqned n;int zero,max;
  printf(“\nInput n(unsigned):”);
scarlf(“%d”,&n);
  max=fun(n,&zero);
  printf(“\nThe result:max=%d zero=
%d\n”,max,  zero);
}

选项

答案(1)if(t==0) (2)*zero=count;

解析 本题中函数的功能是统计一个无符号整数中各位数字值为0的个数。对无符号数进行截取,然后对每个数字进行判断并统计。
   [解题思路]
    (1)第一个标识下的if语句是判断t是甭为0,而原题给出的“if(t=0)”是将0赋值给t,所以将第一个标识下的“if(t=0)”改为“if(t==0)”。
    (2)第二个标识下的“zero=count;”语句,根据fun函数中zero的定义为指针型。所以,第二个标识下“zero=count;”应该改为“*zero=count:”。
转载请注明原文地址:https://kaotiyun.com/show/uaJp777K
0

最新回复(0)