给定程序MODI1.C中函数fun的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。 请改正程序中的错误,使它能得出正确结果。

admin2013-09-15  47

问题 给定程序MODI1.C中函数fun的功能是:从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定,函数中a1放个位数,a2放十位数。
    请改正程序中的错误,使它能得出正确结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include  <stdio.h>
int fun(int *b)
{  int k,a1,a2,i=0;
   for(k=10;  k<=55;  k++)  {
/**********found**********/
    a2=k/10;
    a1=k-a2*10;
    if((k%3==0 && a2==5)‖(k%3==0&& a1==5))
    {  b=k;i++;}
  }
/**********found**********/
  return k;
    }
main()
{  int a[100],k,m;
  m=fun(a);
  printf("The result is:\n");
  for(k=0;  k<m;  k++)printf("%4d",  a[k]);print f("\n");
}

选项

答案(1)a2=k/10; (2)return i;

解析 (1)第一标识下“a2=k/10;”是截取十位数,截取个位数是k%10,而截取十位数是k/10,因此第一标识下应改成“a2=k/10;”。
    (2)变量i是标识数组b的下标也就是数组的个数,题目中“return k;”返回的是循环条件表达式中的变量,所以这里应该将“return k;”改为“return i;”。
转载请注明原文地址:https://kaotiyun.com/show/5MJp777K
0

最新回复(0)