Füllen Sie ein Zwei-Dimensionales array mit Zufallszahlen in C++
Ich mache ein Programm, das fügt ein zwei-dimensionales array mit zufälligen Ganzzahlen und sucht den höchsten Wert anzeigen, und es werden die Koordinaten in das array. Ich bin mit drei Dateien. utils.h, utils.cpp und main.cpp. Mein Programm zeigt ein array, aber es ist nicht richtig, und ich kann nicht herausfinden, warum trotz all meiner Forschung. Jede Hilfe würde geschätzt werden. Dies ist ein college-Zuordnung, und ich weiß, dass mein professor will Haupt-und utils.h belassen ist, so dass die einzige Sache, die ich ändern kann utils.cpp. Vielen Dank für Ihre Zeit.
#include "utils.h"
void fillTable(int table[ROW_COL_SIZE][ROW_COL_SIZE]) {
for(int i = 0; i < ROW_COL_SIZE; i++) {
for(int c = 0; c < ROW_COL_SIZE; c++) {
cout << rand() % table[i][c];
}
}
}
void findLargest(int table[ROW_COL_SIZE][ROW_COL_SIZE], int& largestRow,
int& largestCol) {
largestRow = 0;
largestCol = 0;
for ( int i = 0; i < ROW_COL_SIZE; i++) {
for ( int j = 0; j < ROW_COL_SIZE; j++) {
if(table[i][j] > table[largestRow][largestCol]) {
largestRow = i;
largestCol = j;
}
}
}
}
void displayTable(int table[ROW_COL_SIZE][ROW_COL_SIZE]) {
for (int i = 0; i < 10; i++) {
for ( int j = 0; j < 10; j++) {
cout << table[i][j];
}
}
}
Dies ist meine Ausgabe, die ich erhalte.
55302337713078127332504421405961229072248303443307961481223132483391855019110600
92808812679236602328231529150663269913935376911094217591887215022974011255316512
71103276228950168692675422850260269511370054042617128509148242205517590190271332
93168530667935211606208729747118402681321223203422069312038223266476231187148148
05966618422064721159313592422312213211891498452701498229001417726265175102184575
4298481247015001631326472115171254718059341323252489617888241851323216308-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460-858993460-858993460-858993460-858993460-858993
460-858993460-858993460-858993460The largest value located at [0] [0] is: -85899
3460
Press any key to continue . . .
- srand(time(0))?
- nur damit Sie wissen,
rand() % N
ist keine gleichmäßige Verteilung. - Es sei denn, die Werte in der Tabelle ändern, fillTable können auch verfolgen, die größten Wert, denn Sie füllt die Tabelle aus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte
fillTable
füllentable
? Derzeit ist es nicht - es druckt nur zucout
. Dahertable
anscheinend auch weiterhin nicht initialisiert.So, in
fillTable
statt:Möchten Sie wahrscheinlich so etwas wie:
In
fillTable
sollten Sie etwas verwenden wie:(Beachten Sie das Leerzeichen getrennten zahlen, können Sie auch einfügen möchten
cout << endl;
nach jeder Zeile. Aber ich bin mir nicht sicher, obfillTable
sollte auch das drucken der Werte?)Auch die
displayTable
Funktion druckt nur die ersten zehn Zeilen/Spalten (aber das könnte beabsichtigt sein?)Dass Sie einfach die Zufallszahl ausgegeben und nicht das einfügen in es.
machen Sie es wie diese
PLus Sie bekommen einen Müll Wert, wenn Sie finden, die größten Wert, da keine tatsächliche Wert in dem array gespeichert.