我试图访问多维数组中的特定行,播下它的行为类似于以下程序中的向量,该向量在向量中找到最高值:
int getMax(int V[], int i){
if(i<0){
return V[0];
}
else{
return max(V[i], getMax(V, i-1));
}
以下错误是
将arugment传递给参数&#39; a&#39;这里
#define N 3
#define M 2
int array_print_max(int a[N][M], int i , int j) // error is in this line.
{
if(i<0)
{
return a[j][0];
}
else
{
return max(a[j][i], array_print_max(a[j][i-1], i-1 , j));
}
}
在这两种情况下,最大功能是:
int max(int a, int b)
{
if (a > b)
{
return a;
}
else
{
return b;
}
}
主要是
int main()
{
int a[3][2] = { {0,4,2}, {1,2,3} };
}
为什么功能array_print_max
不会重复?
答案 0 :(得分:0)
你的main()代码块存在缺陷。
a [m] [n]是一个带有“m”行和“n”列的二维数组。但是你已经定义了反之亦然。
<?php
use Illuminate\Routing\Router;
use Illuminate\Http\Request;
public function index(Request $request, Router $route)
{
$action = $router->getRoutes()->match($request)->getActionName();
// action should be what you're looking for.
}
但是
int main()
{
int a[3][2] = { {0,4,2}, {1,2,3} };
}
是一个2行和3列的二维数组。 所以将main()的代码更改为
{
{0,4,2},
{1,2,3}
}
并检查一次。
即便如此,如果您收到错误,请随时再次通知我。 祝你好运!
答案 1 :(得分:0)
我收到了以下警告:
main中的多余元素:
int a[3][2] = { {0,4,2}, {1,2,3} };
应该是:
int a[2][3] = { {0,4,2}, {1,2,3} };
不兼容的整数到指针转换传递'int':
return max(a[j][i], array_print_max(a[j][i-1], i-1 , j));
也许这应该是:
return max(a[j][i], array_print_max(a, i-1 , j));
这是因为原型需要一组数组,但a[j][i-1]
是int
。
当然我收到了关于main
中未使用的变量'a'的警告。
int array_print_max(int a[N][M], int i , int j)
在int a[N][M]
中,此处的第一个值N
将被忽略。但它通常不会引发编译错误。此外,我们更改了数组维度,因此以下内容不会产生误导:
int array_print_max(int a[][N], int i , int j)