A-A+
下列给定程序中 函数proc的功能是计算正整数m 各位上数字的平方和。 例如 输入498 则
问题详情
下列给定程序中,函数proc的功能是计算正整数m 各位上数字的平方和。
例如,输入498,则输出应该是161。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include<stdlib.h>
include<stdio.h>
include<conio.h>
long proc(10ng m)
{
//****found****
long sum=1;
do
{
sum+=(m%10)*(m%10);
m/=l0;
//****found****
}
while(m)
return(sum);
}
void main
{
long n;
system("CLS");
printf("Please enter a number:");
scanf("%1d",&n);
printf("\n%ld\n",proc(n));
} 请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:
(1)错误:long sum=1;
正确:long sum=0;
(2)错误:while(m)
正确:while(m);
【解析】由函数proc可知,变量sum中存放正整数m 的各位上数字的平方和,其初始化为0。因此,“long sum= 1;”应改为“long sum=0;”。按照C语言的语法规则,语句都以分号结束,应在do-while语句最后加上分号。因此,“while(m)”应改为“while(m);”。