改错题  
    给定程序MODI1.c中函数fun的功能:找出100~n(n≤1000)的三位数字相等的所有整数,把这些整数放在s所指数组中,个数作为函数值返回。
    请改正函数fun中指定位置的错误,使它能得出正确的结果。
    注意:不要改动main函数,不得增行或删行,也不得更改程程序的结构!
    给定源程序如下:
#include <stdio.h>
#define    N    100
int  fun(int  *s, int  n)
{  int  i,j,k,a,b,c;
  j=0;
  for(i=100; i<n; i++) {
/**************found**************/
      k=n;
      a=k%10;  k/=10;
      b=k%10;  k/=10;
/**************found**************/
      c=k%10
      if( a==b && a==c ) s[j++]=i;
  }
  return  j;
}
main()
{  int  a[N], n, num=0, i;
  do
  {  printf('\nEnter n( <=1000 ) :  ');  scanf('%d',&n); }
  while(n > 1000);
  num = fun( a,n );
  printf('\n\nThe result :\n');
  for(i=0; i<num; i++)printf('%5d',a[i]);
  printf('\n\n');
}
 
【正确答案】(1)k=i; (2)c=k%10; 答案考生文件夹
【答案解析】(1)i是当前要被判断的数,因为i是循环变量,所以将i的值赋给k再进行运算。 (2)c是存放百位上的数,可以通过求余运算得到,语句要用分号“;”结束。