#include <stdio.h>
int fun(int x);
int sum,a,n;
int main ()
{
printf("请输入一个正整数");
scanf("%d",&n);
sum=fun(n);
printf("sum=%d",sum);
return 0;
}
int fun(int x)
{
if(x==0)
return 0;
else
{
a=x%10;
sum=a+fun(x/10);
return sum;
}
}
输入32
打印sum=6
为啥会运算错误呢
你题目的解答代码如下:
#include <stdio.h>
int fun(int x);
int sum, a, n;
int main()
{
printf("请输入一个正整数");
scanf("%d", &n);
sum = fun(n);
printf("sum=%d", sum);
return 0;
}
int fun(int x)
{
int sum;
if (x == 0)
return 0;
else
{
a = x % 10;
sum = a + fun(x / 10);
return sum;
}
}
如有帮助,望采纳!谢谢!
sum没有初始值呀,先对sum赋初值。
#include <stdio.h>
int fun(int x);
int sum=0,a,n;
int main ()
{
printf("请输入一个正整数");
scanf("%d",&n);
sum=fun(n);
printf("sum=%d",sum);
system("pause");
return 0;
}
int fun(int x)
{
if(x==0)
return 0;
else
{
sum += x%10;
fun(x/10);
return sum;
}
}