我試圖解決一個網上法官的問題(https://www.codechef.com/LOCMAY17/problems/LOC172)。以下是該問題的代碼。當我提交判斷給出運行時錯誤()。 所有的變量已被用於acc約束。請幫助我找出哪裏出了問題? 下面的代碼給出:這段代碼中運行時錯誤的原因是什麼?
#include<iostream>
#include<stdlib.h>
using namespace std;
main()
{
long long int h,w;
while(1)
{
cin>>h>>w;
if(h==-1 && w==-1)
exit(1);
int n,i,j;
cin>>n;
long long int arr[n][4];
for(i=1;i<=n;i++)
{
cin>>arr[i][1]>>arr[i][2]>>arr[i][3];
arr[i][4]=0;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if((llabs(arr[j][2]-arr[i][2]))<=arr[j][3])
arr[i][4]++;
}
}
long long int max=arr[1][4];
for(i=2;i<=n;i++)
{
if(arr[i][4]>max)
max=arr[i][4];
}
cout<<max<<endl;
}
}
我事先是一個初學者在這個網站,謝謝。
CodeChef是否接受動態數組? – CinCout
從技術上講,您的程序不是有效的C++程序,因爲C++沒有[可變長度數組](https://en.wikipedia.org/wiki/Variable-length_array)。改爲使用['std :: vector'](http://en.cppreference.com/w/cpp/container/vector)。 –
'long long int arr [n] [4];'不應該編譯。 'n'不是一個常數。 – nakiya