C++ C+中的分段错误+;

C++ C+中的分段错误+;,c++,C++,我面临输入问题100000011,5 输出应为:5000000058 我面临分割错误 #include<iostream> using namespace std; int main() { int c,r; cin>>r>>c; cout<<endl; int k; if(r%2==1) { k= 10*(r/2)+2*(c-1); } else if(r%2==0) {

我面临输入问题
100000011,5

输出应为:
5000000058

我面临分割错误

#include<iostream>
 using namespace std;
 int main()
 {
    int c,r;
    cin>>r>>c;
    cout<<endl;
    int k;
    if(r%2==1)
 {
    k= 10*(r/2)+2*(c-1);
  }
    else if(r%2==0)
 {
    k=10*(r/2-1)+(2*(c-1)+1);
  }
    cout<<k;
    return 0;
  }
#包括
使用名称空间std;
int main()
{
int c,r;
cin>>r>>c;

cout您面临的是溢出,而不是分段错误

5000000058
只是不适合使用的32位int。您应该使用使用更多位来存储值的类型

在这种特殊情况下,更改为
long
应该可以起到作用


intc,r;
更改为
long-long-c,r;
intk;
更改为
long-long-k;
,它就可以正常工作了。

您尝试过使用调试器吗?您输入两个数字如下:10000000115?添加
很难相信该代码会导致分段错误。(不过,它确实会产生一个结果,因为您没有考虑结果的大小。)