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

admin2013-03-29  30

问题 给定程序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()
{  unsigned n;int zero,max;
  printf("\nlnput n(unsigned):");
scanf("%d",&n);
  max=fun(n,&zeEo);
  printf ("\nThe result:max=%d zero=
%d\n",max,zero);
}

选项

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

解析 (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/8WJp777K
0

最新回复(0)