ScreenshotProgramm, das Multiplikationstabellen erzeugt, die komisch wirken
Hier ist der Code. Es soll ein 2D-Array erzeugen und ausgeben, aber aus irgendeinem Grund den Wert für 9x10 (90) durcheinander bringen und das Programm zum Absturz bringen. Ich habe einen Screenshot beigefügt.
Irgendwelche Ratschläge? Wie kann ich die Zahlen in einem ordentlichen Raster anordnen?
#include <iostream>
using namespace std;
int main()
{
int values[10][10];
for(int i=1;i<=10;i++)
{
for(int j=1;j<=10;j++)
{
values[i][j]=i*j;
cout<<\t<<values[i][j]<<flush;
}
cout<<endl;
}
return 0;
}
Sie tun wissen, dass Indizes in Arrays in C++ auf Null basieren? Bei einem Array von zehn Elementen gehen die Indizes von "0" bis "9" (einschließlich). Wenn Sie das nicht wissen, dann müssen Sie [ein gutes Anfängerbuch finden] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) und neu beginnen . –
Mir ist bewusst, aber da ich die Variablen i und j verwenden wollte, um die Werte (die von 1x1 bis 10x10 gehen) tatsächlich zu berechnen, ging ich mit i = 1 und j = 1. Dies scheint jedoch nicht die Ursache des Fehlers zu sein. – Shehryar
@Shehrary ist es in der Tat die Ursache für den Fehler. Die Werte, die Sie dem Benutzer anzeigen (1 ... 10), unterscheiden sich von den Werten, die Sie zum Speichern von Daten im Array benötigen (0..9). Glücklicherweise kann man von dem anderen abgeleitet werden, aber angesichts Ihrer aktuellen Anforderungen können sie nicht dieselben sein. – fbrereto