A-A+

下列给定程序中 函数proc的功能是找出100~m(m 不大于1000)之间百位数字加十位数

2022-08-05 23:28:08 问答库 阅读 173 次

问题详情

下列给定程序中,函数proc的功能是找出100~m(m 不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值 返回。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<stdio.h> define M 1000 int proc(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; c=k/10; if(a==b+c) //****found**** s[j]=i: } return j; } void main { int a[M],m,num=0,i; do { printf("\nEnter m(<=1000):"); scanf("%d",&m); } while(m>1000); num=proc(a,m); printf("\n\nThe result:\n"); for(i=0;i<num;i++) printf("%5d",a[i]); printf("\n\n"); } 请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:

(1)错误:k=n;
正确:k=i;
(2)错误:s[j]=i;
正确:s[j++]=i;
【解析】要找出所有符合条件的整数,就需要对1~n的每一个数进行检验,因此for循环中的“k=n;”应改为“k= i;”。对于每一个符合要求的整数放在数组s中,因此“s[j] =i;”应改为“s[j++]=i;”。

考点:函数,功能