【发布时间】:2021-04-23 12:40:57
【问题描述】:
我一直在尝试编写一个函数来打印最大 10 位数字的 reveres 版本使用数组...但这里的问题是我的代码无法打印反向一个大的 10 位数字(如 9999999999 或 9784562312)正确...我不知道问题出在哪里! 有人有意见吗? (对不起,如果我有语法错误,我不是母语人士)
这里是代码:
int main(){
const int size = 10;
int number, revers;
cin >> number;
revers = inverse( number, size );
cout<<revers;
}
int inverse( int n, int size){
int sum=0, array[size]={0}, i=0;
for( i=0 ; n>=1 ; i++ ){
array[i] = n % 10;
n /= 10;
}
int l=i;
i--;
for(int j=0 ; j<l ; j++, i--){
sum += pow(10,i)*array[j];
}
return sum;
}
【问题讨论】:
-
int的范围是-2147483648到2147483647-- 如果需要有符号值,请使用较大的类型,例如uint64_t或int64_t。 -
std::string是一个数组。 -
您不需要数组。 (并且你不应该使用
pow处理整数问题。) -
我也写了没有数组,但我只是想知道为什么它不能这样工作..