当我长时间写而不是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;
}
答案 0 :(得分:1)
下面:
int n,a[n],i,count=0,c=0,c1=0,j;
cin>>n;
您在初始化之前使用n
。在声明一个n大小的数组后,从用户读取n
是没用的。您应该使用std::vector<int>
代替。例如。
size_t n;
std::cin >> n;
auto a = std::vector<int>(n);