2017-05-03 6 views
-7

Wie initialisiert man ein 2D-Array, indem man Elemente von Array vom Benutzer nimmt?2D-ARRAY-INITIALISIERUNG?

#include <iostream> 
using namepace std; 
int main() 
{ 
    int row, col; 
    int arr[][]; 
    for (int i = 0; i < row; i++) { 
     for (int j = 0; j < col; j++) { 
      cout << "Elements of Array :" << ' '; 
      cin >> arr[i][j]; 
     } 
    } 
    return 0; 
} 
+0

Was haben Sie versucht und warum haben Sie versagt? – Rakete1111

+2

Haben Sie überlegt, zwischen den Hunderten von vorherigen Antworten zu suchen? – stark

+0

Benötigen Sie weitere Informationen zu dem, was Sie tun –

Antwort

0

Die Grenzen für das 2D-Array müssen bei der Initialisierung auf diese Weise angegeben werden.

Ersetzen int arr[][] mit int arr[row][col] kann Ihr Problem lösen, vorausgesetzt, dass die Anzahl der Zeilen und Spalten verfügbar sind.

Der folgende Code kann hilfreich sein:

#include <iostream> 
    using namespace std; 
    int main() 
    { 
     int row, col; 
     cout << "Number of rows : "; 
     cin >> row; 
     cout << "Number of columns : "; 
     cin >> col; 
     int arr[row][col]; 
     for (int i = 0; i < row; i++) { 
      for (int j = 0; j < col; j++) { 
       cout << "Enter value for row " << i << " column " << j << " : "; 
       cin >> arr[i][j]; 
      } 
     } 
     cout << "Elements of Array :" << endl; 
     for (int i = 0; i < row; i++) { 
      for (int j = 0; j < col; j++) { 
       cout << arr[i][j] << " "; 
      } 
      cout << endl; 
     } 
     return 0; 
    } 
+0

*** int arr [Zeile] [col]; *** ist nicht gültig C++. C++ erlaubt keine VLAs. Obwohl einige Compiler dies als Erweiterung unterstützen. – drescherjm

1

Im Gegensatz zu C#, C++ nicht Arrays mit Variablen initialisieren kann; Die Werte müssen korrigiert werden. Wie bei allen sprachbezogenen Problemen gibt es immer eine Möglichkeit, das Problem zu umgehen. In diesem Fall besteht die beste Möglichkeit darin, Zeiger zu verwenden und eigene dynamische Arrays zu erstellen.

#include <iostream> 
using namespace std; 
int main() 
{ 
    int row, col; 
    cout << "Number of rows : "; 
    cin >> row; 
    cout << "Number of columns : "; 
    cin >> col; 
    //init the pointer array 
    int **arr =new int*[row] ; 
    for (int i = 0; i < row; i++) 
    { 
     arr[i] = new int[col];// init the columns for each row 
     for (int j = 0; j < col; j++) 
     { 
      cout << "Enter value for row " << i << " column " << j << " : "; 
      cin >> arr[i][j]; 
     } 
    } 
    cout << "Elements of Array :" << endl; 
    for (int i = 0; i < row; i++) 
    { 
     for (int j = 0; j < col; j++) 
     { 
      cout << arr[i][j] << " "; 
     } 
    } 
    cout << endl; 
    return 0; 
}