C ++ 2D数组读取

时间:2015-06-25 21:54:22

标签: c++ arrays function 2d

我需要一些帮助。我需要制作模块化程序。但我有点麻烦。所以,我需要读取一个2D数组,但用户定义了行和列。 阅读之后,我需要在另一个函数中进行一些计算...但我不能很好地编写一个有效的函数... 我试过指针......但是我不能用得好。我是初学者。

//main
int a[2500]; //symbolic. n<=50 -in my case
int n;

reading (a*,n);
//reading function
void reading(int* array[], int &n)
{
    cout << "n=<<;
    cin >> n;

    for(int i = 0; i < n; i++) {
        for(int j = 0; j < n ;j++) {
            cin >> array[i][j];
        }
    }
}

请帮帮我。

2 个答案:

答案 0 :(得分:1)

此代码存在许多问题。最明显的是C ++!= Python,所以你必须将主代码放在这样的函数中:

int main() {
//Main code here, calling other functions etc
reading (&a,n);
return 0; //or return 1 to signal there has been an error
}

从那里,您可以处理您的代码。模块化设计的好处是你可以调试它的一部分,并确保每个部分都有效。使用调试器,如果你在做了一些研究之后仍然被卡住了,可以在SO上提出一个问题。

答案 1 :(得分:0)

我得到了正确的解决方案;)

 //main
int **matrix, n;
matrixread(matrix,n);


//matrixread 
void matrixread(int** &matrix, int &m)
{
cin >> m;
matrix = new int*[m];
for (i = 0; i < m; i++)
{
    matrix[i] = new int[m];
}
for (i = 0; i < m; i++)
{
    for (j = 0; j < m; j++)
    {
        cout << "matrix[" << i << "," << j << "]= " ;
        cin >> matrix[i][j];
    }
}