2015-06-25 2 views
-1

Мне нужна помощь. Мне нужно сделать модульную программу. Но у меня есть небольшая проблема. Итак, мне нужно прочитать 2D-массив, но пользователь определяет строку и столбец. После чтения мне нужно сделать некоторые вычисления в других функциях ... но я не могу хорошо написать функцию, которая работает ... Я пробовал с указателями ... но я не могу использовать хорошо. Я новичок.Чтение 2D-массива C++

//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

Вы должны описать проблему вы столкнулись. Это ошибка компиляции, ошибка времени выполнения или некоторая ошибка в логике программы? –

ответ

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, если вы все еще застряли после проведения некоторых исследований.

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]; 
    } 
}