本来应该用循环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;}