C++中传递二维数组的问题

不知为何,我无法让distance函数正常工作。能有人解释一下我哪里做错了么?

主函数:

#include <iostream>#include <cmath> using namespace std;int distance(int**, int); int main() { int m; int goal [3][3] = { {1,2,3},{4,5,6},{7,8,0}}; const int N = 3; int intial[N][N]; cout << "Enter in values: \n"; for(int i=0; i<3; i++)    //This loops on the rows.{    for(int j=0; j<3; j++) //This loops on the columns    {        cin >> intial[i][j];      }} cout << goal[0][0] << "\n" ; m = distance(intial,N); system("PAUSE"); return 0; }

曼哈顿距离计算!

int distance(int** array,int N) {  int MSum = 0;  for (int x = 0; x < N; x++){ //Transversing rows(i)      for (int y = 0; y < N; y++) { //traversing colums (j)        int value = array[x][y]; // sets int to the value of space on board            if (value != 0) { // Don't compute MD for element 0               int targetX = (value - 1) / N; // expected x-coordinate (row)               int targetY = (value - 1) % N; // expected y-coordinate (col)               int dx = x - targetX; // x-distance to expected coordinate               int dy = y - targetY; // y-distance to expected coordinate               MSum += abs(dx) +abs(dy);               }        }  }  int m = MSum;  return m; }

回答:

从逻辑上看,这看起来基本上是正确的。你传入的数组应该与函数的声明和实现兼容。这里是一个示例声明:

int distance(int array[3][3],int N);

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注