c++ - 如何在函数中传递二维数组?
问题描述
我无法arr
在函数搜索中传递数组,它显示如下错误,
prog.cpp: In function ‘int main()’: prog.cpp:28:39: error: no matching function for call to ‘search(int [m][n], int&, int, int)’ else count=search(arr,i,0,n-2); ^ prog.cpp:4:5: note: candidate: int search(int (*)[100], int, int, int) int search(int arr[][N],int i,int l,int r){ ^ prog.cpp:4:5: note: no known conversion for argument 1 from ‘int [m][n]’ to ‘int (*)[100]’ In file included from /usr/include/c++/5/algorithm:62:0,
我的代码如下,
#include<bits/stdc++.h>
#define N 100
using namespace std;
int search(int arr[][N],int i,int l,int r){
if(r>=l){
int q=(l+r)/2;
if(arr[i][q]==0 and arr[i][q+1]==1) return q;
if(arr[i][q+1]==0) search(arr,i,q+1,r);
else search(arr,i,l,q-1);
}
}
int main()
{
//code
int t;
cin>>t;
while(t--){
int m,n,count=0,min=41,row=0;
cin>>m>>n;
int arr[m][n];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
cin>>arr[i][j];
for(int i=0;i<m;i++){
if (arr[i][n-1]==0) count=n;
else if(arr[i][0]==1) count= 0;
else count=search(arr,i,0,n-2);
if(count<min){
min=count;
row=i;
}
}
cout<<row<<endl;
}
return 0;
}
提前致谢。
解决方案
推荐阅读
- azure - 在 Azure DevOps 中下降后如何跳过给定的发布阶段
- angular - 如何保存用户表单值
- java - 如何在片段中而不是在活动中使用 NavController(在片段中带有 NavHost)?
- django - 从根目录在 Django 中加载静态图像的最佳方法
- javascript - 如何将以下内容转换为有效的 JSON?
- templates - 有没有办法使用树枝模板从 Grav 中的 YAML 前端动态选择值?
- javascript - setInterval 在函数中使用时不起作用
- javascript - 如何让这个在类函数中不为空?
- vuejs2 - 无法让数据绑定与 vue 一起正常工作
- java - JavaFX 对 BackgroundImage 应用效果