C++语句错误 invalid types `int[int]' for array subscript 帮我看看...
发布网友
发布时间:2024-09-30 13:10
我来回答
共3个回答
热心网友
时间:2024-11-19 13:00
#include <iostream>
using namespace std;
int max(int (*array)[100],int I,int J,int index,int index1);
int temp[100][100],judge[100][100],n;
int main( )
{
int i,j,arr[100][100],max1=0;
cin>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>arr[i][j];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
memset(arr,-1,sizeof(temp)*100*100);
max(arr,i,j,i,j);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(max1<judge[i][j]) max1=judge[i][j];
}
cout<<max1<<endl;
return 0;
}
int max(int (*array)[100],int I,int J,int index,int index1)
{
int i=0,j=0,sum=0;
judge[I][J]=0;
if(temp[index][index1]>-1) return temp[index][index1];
if(I==index&&J==index1) temp[index][index1]=array[I][J];
else if(I==index&&J!=index1)
{
for(j=J+1;j<n;j++)
temp[index][j]=temp[index][j-1]+array[I][j];
}
else if(I!=index&&J==index1)
{
for(i=I+1;i<n;i++)
temp[i][index1]=temp[i-1][index1]+array[i][J];
}
else if(I!=index&&J!=index1)
{
for(j=J;j<=index1;j++)
sum=sum+array[I][j];
temp[index][index1]=temp[i-1][index1]+sum;
}
if(index<n-1) max(array,I,J,index+1,index1);
if(index1<n-1) max(array,I,J,index,index1+1);
if(index==n&&index1==n)
{
for(i=I;i<n;i++)
for(j=J;j<n;j++)
{
if(judge[I][J]<temp[i][j])
judge[I][J]=temp[i][j];
}
}
return 0;
}
热心网友
时间:2024-11-19 13:00
1. max函数中array变量是int*类型,它是int数组,后面只能有一个下标,你写了多处array[I][j],把他当做二维数组来用了。
2. max函数最后一个for循环,for循环应该有三部分,它们以分号隔开,你这里只有一部分,没有分号隔开
热心网友
时间:2024-11-19 12:54
没有分 郁闷