改错题
下列给定程序中,函数fun的功能是:找出100~n(不大于1000)三个位上的数字都相等的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动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;
/**********found**********/
b=k/10;
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');
}