This是我正在努力解决的问题。
这是我的尝试:
#include <iostream>
using namespace std;
int main()
{
long long int n;
cin>>n;
long long int a[n],b[n],i,max1=0,max2=0;
a[0]=0;
for(i=1;i<n+1;i++){
cin>>a[i];
if(abs(a[i]-a[i-1])>max1)
max1=abs(a[i]-a[i-1]);
}
b[0]=0;
for(i=1;i<n+1;i++){
cin>>b[i];
if(abs(b[i]-b[i-1])>max2)
max2=abs(b[i]-b[i-1]);
}
if(max1>max2)
{ cout<<"Dom"<<endl;
cout<<max1;}
else if(max1<max2)
{ cout<<"Brian"<<endl;
cout<<max2; }
else
{
cout<<"Tie"<<endl;
cout<<max1;
}
//cout << "Hello World!" << endl;
return 0;
}
执行时,它会出现段错误。
有人可以帮我解决问题吗?
答案 0 :(得分:0)
循环将始终在数组边界之外写入一个元素,因为循环中WindowsError: [Error 193] %1 is not a valid Win32 application
的最大值为i
。为每个数组分配n
内存或将循环条件设置为n + 1
。