我需要一些帮助。我需要制作模块化程序。但我有点麻烦。所以,我需要读取一个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];
}
}
}
请帮帮我。
答案 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];
}
}