下面是我自己的码
#include <bits/stdc++.h>
using namespace std;
int n,num=0,s,n1;
int main(){
cin>>n;
for (int i=0;n>0;i++){
num=num+n%10;
n=n/10;
}
cout<<num;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int n,num=0,s,n1;
int main(){
cin>>n;
for (int i=0;n>0;i++){
num=num+n%10;
n=n/10;
}
cout<<num;
return 0;
}
因为你定义的n为int型,int型的范围在-2147483648~2147483647之间,也就是超过这个10位数就会超出n的范围,编译器会给n最大值,而这个值能使结果为46
解决:使用更大的整型类型,比如long 或者long long替换int型,如果需要不限制长度,可以使用数组。
不懂再问,望采纳!