#include
int fun(int a[100][100],int b[100][100],int row,int clo);
void main()
{
//input
int coin[100][100]={0};
int mark[100][100]={1};//标记访问1
int row,clo;
printf("input row: clo: \n");
scanf("%d %d",&row,&clo);
int i=1;
int j=0;
while(i<=row)
{
while(j<=clo)
{
printf("input a number:\n");
scanf("%d",&coin[i][j]);
mark[i][j]=0;
}
}
//process
int max=fun(coin[100][100],mark[100][100],1,1,row,clo);//数组做参数的问题
//output
printf("the max value is:%d",max);
}
int fun(int coin[100][100],int mark[100][100],int row,int clo,int m,int n)//返回加上该点值得结果
{
//递归结束,判断是否判断越界
if((row-1n||mark[row][clo+1]==1)&&(row+1>m||mark[row+1][clo]==1))
return coin[row][clo];
//递归判断各个方向的
int up=fun(coin,mark,row-1,clo);
int right=fun(coin,mark,row,clo+1);
int down=fun(coin,mark,row+1,clo);
int tmp=up>right?up:right;
tmp=tmp>down?tmp:down;
//返回最大值
return tmp+coin[row][clo];
}
编译出现错误:
D:\VC++6.0\MyProjects\DuDuBear\Main.cpp(24) : error C2660: 'fun' : function does not take 6 parameters