本来应该用循环for语句,但是不知道数字长度的情况下无法控制循环题的结束,所以采用do-while语句。因为a是整型,让a不断做除法运算最后a的值会等于0,等于0 说明已经没有数了,把所有的数找出来了。
#include<stdio.h>
int fun(int a)
{
int m,sum=0;
do
{ m=a%10;//求个位数
a=a/10;//去除个位数
sum+=m*m; //累计求和
}while(a!=0);//判断a是不是为0,如果等于0说明已经求完成了
return sum;//返回值
}
int main()
{
int n,sum; //定义一个变量
printf("请输入一个正整数:");
scanf("%d",&n);//输入
sum=fun(n);
printf("平方和为:%d\n",sum);//调用函数并输出结果
return 0;
}