这个代码中的错误是什么,每次都会给我分段错误

What is the error in this code ,it is giving me segmentation fault everytime?

本文关键字:错误 分段 代码 是什么      更新时间:2023-10-16

看到这是我写的,请复习并更正密码

#include <iostream>
using namespace std;
int main() {
// your code goes here
int Sum(int x);
int i,T;
scanf("%d",&T);
for(i=0;i<T;i++)
{
int a;
scanf("%d",&a);
printf("%d",Sum(a));
}
return 0;
}
int Sum(int x)
{
int ans=0;
ans = ans + x%10;
x=x%10;
Sum(x);
}

代码是求一个数字的位数之和。

您的Sum((根本不会返回。正如这个网站的名字所说,这会导致堆栈溢出。

您可能想要这样的东西:

#include <iostream>
using namespace std;
int Sum(int x)
{
int ans=0;
while(x > 0) {
ans = ans + x%10;
x=x/10;
}
return ans;
}
int main() {
int i,T;
scanf("%d",&T);
for(i=0;i<T;i++)
{
int a;
scanf("%d",&a);
printf("%d",Sum(a));
}
return 0;
}