我正在完成一项任务并且无法编译代码。代码必须有递归。我们的想法是顺序传递一个二维数组 - 逐行,逐列,并获得一个私有帮助器方法来匹配案例并返回结果。
我已经尝试过查看不同的解决方案,一切看起来都是有序的,但是我收到了错误:
required: int
found: int[][]
我将一个数组,int row和int列传递给一个应该接受这三个的方法。 看看:
public static int [][] calculateProximity ( boolean [][] mineField )
{
int [][] proximityField = new int [mineField.length][mineField[0].length];
for (int row = 0; row < mineField.length; row++) {
for (int column=0; column <mineField[row].length; column++) {
proximityField [row][column] = calculateProximity (mineField, row, column);
}
}
return proximityField;
}
private static int [][] calculateProximity (boolean [][] mineField,
int row, int column)
{
int [][] proximityField;
if (row >= mineField.length || column >= mineField[row].length){
return proximityField=0;
}
else if (mineField [row][column]= true){
proximityField[row][column]=1;
return proximityField;
}
else
{
proximityField[row][column]=0;
}
return proximityField;
}
顺便说一下,calculateProximity主方法是返回一个int 2d数组,但它给出了一个布尔2d数组。
答案 0 :(得分:0)
return proximityField=0;
,不正确。在这里,您将返回proximityfield=0
的结果。这将是一个整数,值为0.分配变量时,返回值是您为变量赋值的值。您可能应该返回null
。
答案 1 :(得分:0)
执行递归时不要使用循环。我希望这段代码能给你一些想法:
#include<stdio.h>
#include<stdlib.h>
int i=0,j=0,k=0,flag=0;
int function_Matrix(int arr[][4],int i,int j)
{
if(j==4||i==3)
return 1;
if(flag==0)
{
printf("\t%d",arr[i][j]);
}
function_Matrix(arr,i,j+=1);
printf("\n");
function_Matrix(arr,i+=1,j=0);
flag=1;
}
int main()
{
int x;
int arr[][4]={{1,2,3,4},
{5,6,7,8},
{9,7,6,5}};
function_Matrix(arr,0,0);
}