C++ -将二维数组传递给函数[duplicate]

z3yyvxxp  于 2022-11-19  发布在  其他
关注(0)|答案(2)|浏览(157)

此问题在此处已有答案

Passing a 2D array to a C++ function(共16个答案)
Variable length arrays (VLA) in C and C++(5个答案)
23小时前关门了。
我试图将一个二维数组传递给一个函数,但是我失败了。传递一维数组没有问题。我该怎么做呢?

#include <iostream>
    
    using namespace std;
    
    void DisplayBoard(int matrix[],int n) // Prints out the given array.
    {
            for (int j = 0; j < n; j++)
            {
                    cout << matrix[j];
            }
    }
    
    int main()
    {
        int n,m;
        cin>>n;
        //int matrix[n]={};
        DisplayBoard(matrix,n);
        return 0;
    }
tuwxkamq

tuwxkamq1#

我想你要输入用户的索引号(n),然后输入用户的数组对象
我完成你的代码如下:

#include <iostream>
using namespace std;

void DisplayBoard(int matrix[],int n) // Prints out the given array.
{ 
  cout<<endl ; 
     for (int j = 0; j < n; j++)
      {
              cout << matrix[j]<<" ";
       }
    }

     int main() {
       int n,m;
         cin>>n ; 
         int matrix[n];
  
         for(int i=0;i<n;i++) {
            cin>>matrix[i];
               } 
             DisplayBoard(matrix,n);
          return 0;
        }

记住在主函数中也声明数组,这是你代码错误之一!
声明数组是不正确:

int matrix[n]={} // incorrect !
6vl6ewon

6vl6ewon2#

Well. int matrix[n]={}; fills it with zeros and that's what I wanted to do. And my code with 1D array works fine but if I do it like so it does not.

    #include <iostream>

using namespace std;

void DisplayMatrix(int matrix[][],int n,int m)
{
    for(int i=0;i<n;i++)
    {
        for (int j = 0; j < m; j++)
        {
                cout << matrix[j];
        }
    }
}

int main()
{
    int n,m;
    cin>>n>>m;
    int matrix[n][m]={};
    DisplayMatrix(matrix,n,m);
    return 0;
}

相关问题