请指教: cannot convert `int (*)[100]' to `int*' for argument `1' to `double f(int*, int, int, double)' 什么错误?怎么改呢?多谢!
用c++编写的一个在一个二维矩阵里取数的问题.
在一个二维矩阵里,每一行中头尾两个数比较大小,取大的那个数,取出的一个数用a[i,j]*2k(2的k次方,k代表取数的次数)表示,然后把所有的加起来,要得到的值最大.数要取到完为止.
#include<math.h>
#include<iostream>
using namespace std;
double f(int a[],int i,int j,double k)
{
double max,m,n;
if(i<j)
{
m=f(a,i+1,j,k+1)+a[i]*pow(2.,k);
n=f(a,i,j+1,k+1)+a[j]*pow(2.,k);
if(m>n)max=m;
else max=n;
}
else if(i==j)max=a[i]*pow(2,k);
return max;
}
main()
{
int a[100][100];
int i,j;
double p;
int r=2,c=4;
double s=1.00;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
cin>>a[i][j];
}
}
p=f(a,0,c-1,s);
cout<<p<<endl;
cin>>i;
}
编译后出错:cannot convert `int (*)[100]' to `int*' for argument `1' to `double f(int*, int, int, double)'
这个错误怎么改呢?初来乍到,请多指教..新来,分比较少..见谅...