Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 长写时的分段错误_C++ - Fatal编程技术网

C++ 长写时的分段错误

C++ 长写时的分段错误,c++,C++,当我写long-long而不是int时,我遇到了分段错误。。我该怎么办?这是我的密码 #include<bits/stdc++.h> using namespace std; int main() { int n,a[n],i,count=0,c=0,c1=0,j; cin>>n; for(i=0;i<n;i++) { cin>>a[i]; } sort(a,a+n); int r=

当我写long-long而不是int时,我遇到了分段错误。。我该怎么办?这是我的密码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,a[n],i,count=0,c=0,c1=0,j;
    cin>>n;
    for(i=0;i<n;i++)
    {
        cin>>a[i];
    }
    sort(a,a+n);
    int r=a[n-1]-a[0];

    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(abs(a[j]-a[i])==r)
            count++;
        }
    }

    cout<<r<<" "<<count<<endl;
    return 0;


}
#包括
使用名称空间std;
int main()
{
int n,a[n],i,count=0,c=0,c1=0,j;
cin>>n;
对于(i=0;i>a[i];
}
排序(a,a+n);
int r=a[n-1]-a[0];
对于(i=0;i此处:

在初始化之前,您正在使用
n
。在声明n大小的数组之后,从用户读取
n
是非常无用的。您应该使用
std::vector
。例如

size_t n;
std::cin >> n;
auto a = std::vector<int>(n);
size\n;
标准:cin>>n;
自动a=标准::向量(n);

int n,a[n],…
这会在n尚未获得值时创建一个大小为n的数组。在获得n的有效值后,需要行
int a[n];
。即使如此,这也是一个(shitty)扩展名。改用
std::vector
#包括使用名称空间std;
这两行都不是你的朋友。此外
a[n]
是一个编译器扩展;不要这样做,因为对它的支持可以随时在该编译器上删除;以及其他编译器可能不支持它的事实。您应该使用valgrind来调试您的程序。我很确定有很多错误(条件跳转等)以及为什么使用C++来像C一样呢?正如@ MikeVine所说的,你应该使用STD::vector,而不是[n]。
size_t n;
std::cin >> n;
auto a = std::vector<int>(n);