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

admin2019-04-04  27

问题 给定程序MODI1.C中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;
并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。
    请改正函数fun中指定部位的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include
int fun(unsigned r1,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("\nlnput n(unsigned):");
Scanf("%d",&r1);
  max=fun(n,&zero);
  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/w6Rp777K
0

最新回复(0)