2016-10-19 3 views
-1

Ich habe eine Zuordnung zu verschachtelten For-Schleifen zum Drucken von Indizes eines zweidimensionalen Array von 5 Zeilen und 3 Spalten, ohne Verwendung von Arrays.In Bezug auf verschachtelte für Schleifen

#include <iostream> 
using namespace std; 

int main() 
{ 
    int row; 
    int column; 
    cout << "Counting with nested loops: indices of row, column" << endl << endl; 
    for (row = 1; row <= 5; row++) 
    { 
     for (column = 1; column <= 3; column++) 
     { 

     } 
     cout << row << "," << column << "\t" << row << "," << column << "\t" << row << "," << column << "\t" << endl; 
    } 
    cout << "\n\n\n" << endl; 
    return 0; 
} 

Dies ist der Code, den ich bisher habe. Mein Ziel ist es

1,1 1,2 1,3

2,1 2,2 2,3

und so weiter zu drucken. Wenn ich das Programm laufen druckt es

1,4 1,4 1,4

2,4 2,4 2,4

So habe ich die Reihen Teil richtig. Könnte mir jemand helfen herauszufinden, was mein Fehler ist?

+0

Was drucken Sie, ohne ein Array zu haben? –

+0

Wo sind Ihre Daten gespeichert? –

+3

@AndreasWalter Ich glaube, die Frage macht deutlich: "Indizes eines zweidimensionalen Arrays ausgeben" - er muss die Indizes, nicht die Inhalte eines Arrays drucken. Einer der wenigen Male, wenn jemand gesagt hat, was er eigentlich meinte. :) – davmac

Antwort

0

Sie müssen nur einmal drucken nennen, aber innerhalb der inneren Schleife wie folgt aus:

for (row = 1; row <= 5; row++){ 
    for (column = 1; column <= 3; column++){ 
     std::cout << row << "," << column << "\t"; 
    } 
    std::cout << std::endl; 
} 
+0

Das hat es nicht im richtigen Format gedruckt. Es hat viel mehr Zahlen gedruckt, als ich hätte. – Subparman

+0

Bearbeitet, um zu drucken, was Sie wollen –

+1

Ich schätze sicherlich die Hilfe. Ich verstehe nicht wirklich, was ich noch vermisst habe, hast du einen Moment für eine kurze Erklärung? Danke noch einmal – Subparman

0

Dies ist der Code, den Sie schreiben müssen:

int main() { 
    int row; 
    int column; 

    cout << "Counting with nested loops: indices of row, column" << endl << endl; 

    for (row = 1; row <= 5; row++) { 
     for (column = 1; column <= 3; column++) { 
      cout << row << "," << column << "\t"; 
     } 
     cout << endl; 
    } 

    cout << "\n\n\n" << endl; 
    return 0; 
} 

Dies liegt daran, Sie drucken müssen innerhalb die zweite Schleife und nicht außerhalb.

0

Andere Leute haben die Frage beantwortet, aber ich wollte einige Vorschläge hinzufügen, um Dinge zu geben, über die man in der Zukunft nachdenken sollte.

Zuerst, wo Sie die Loop-Variablen, z. int row; Sie haben sie nicht initialisiert und brauchen sie nur in der for Schleife, also deklarieren Sie sie dort. Sie sind dann nicht sichtbar außerhalb der for Schleife, die den Fehler des Druckens (über cout) vermieden hätte, sobald die Schleife beendet wurde.

Es lohnt sich auch, die Schleifenzähler zu betrachten. Es ist üblich, bei 0 zu beginnen. Außerdem beginnen die Indizes eines Arrays bei 0 und laufen bis zu n-1. Sie sollten also erwägen, 0, 1, ... anstelle von 1, 2, ... zu drucken, wenn Sie dies jemals zur Iteration durch ein Array verwenden möchten.

#include <iostream> 
using namespace std; 

int main() 
{ 
    cout << "Counting with nested loops: indices of row, column" << endl << endl; 
    for (int row = 0; row < 5; row++) //<--- note start at 0 and stop BEFORE n 
    { 
     for (int column = 0; column < 3; column++) //<--- ditto 
     { 
      cout << row << "," << column << "\t"; 
     } 
     //cout << row << "," << column << "\t" 
       << row << "," << column << "\t" 
       << row << "," << column << "\t" << endl; 
       // Now compile error 
       // And clearly was going to just give the same value 
       // for row and column over and over 
     cout << '\n';//added to break each row in the output 
    } 
    cout << "\n\n\n" << endl; 
    return 0; 
} 
Verwandte Themen