0

我正在尝试制作一个显示某个矩阵的函数;这就是我试图做的:

void print(int n,int a[n][n])
    {
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=n;j++)
            {
                cout<<a[i][j];
            }
            endl;
        }
    }

我知道这不正确,但我没有更好的主意。请帮我!

4

3 回答 3

0

void print(int n, int a[n][n])实际上变成void print(int n, int a[][])

如果大小已知,您可以使用:

void print(int (&a)[42][42])

或以通用方式:

template <int N, int M>
void print(int (&a)[N][M])
{
    for (int j = 0; j != M; ++j) {
        for (int i = 0; i != N; ++i) {
            std::cout << a[i][j] << " ";
        }
        std::cout << std::endl;
    }
}

注意:索引从 0(包括)到 N(不包括)。

于 2013-10-05T12:01:28.450 回答
0
void print(int array[][n],int n){

  for(int i=0;i<n;i++){
      for(int j=0;j<n;j++){
          cout<<array[i][j];
      }
  cout<<endl;
  }
  return ;
}

print(array,size)
于 2013-10-05T11:28:45.420 回答
0

我认为问题可能在于您的ij索引从 1 开始,而不是从零开始。尝试以下操作:

int a[m][n];
for (int i=0; i<m; ++i){
    for (int j=0; j<n; ++j){
        cout << a[i][j];
    }
    cout << endl;
}
于 2013-10-05T11:01:40.510 回答