我正在制作一个程序,它插入一个带有随机整数的二维数组,并找到最高值来显示它和它在数组中的坐标。我正在使用三个文件。 utils.h,utils.cpp和main.cpp。我的程序显示一个数组,但它不正确,我无法弄清楚为什么尽管我的研究。任何帮助,将不胜感激。这是一项大学任务,我知道我的教授希望main和utils.h保持原样,所以我唯一可以改变的是utils.cpp。谢谢你的时间。
#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];
}
}
}
这是我得到的输出。
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 . . .
答案 0 :(得分:3)
fillTable
应填table
吗?目前它没有 - 它只打印到cout
。因此,table
似乎仍然没有初始化。
所以,在fillTable
中,而不是:
cout << rand() % table[i][c];
您可能需要以下内容:
table[i][c] = rand();
答案 1 :(得分:0)
在fillTable
中你应该使用类似的东西:
table[i][c] = rand() % MAX_VALUE; // MAX_VALUE is the largest value +1 you want to generate
cout << table[i][c] << " ";
(注意用空格来分隔数字,你可能还想在每一行之后插入一个cout << endl;
。但我不确定fillTable
是否也应打印出值?)
此外displayTable
函数仅打印前十行/列(但这可能是故意的?)
答案 2 :(得分:0)
您只是输入随机数而不是插入。 这样做
table [i][c] = rand () % table [i][c] ;
当你找到最大值时,你得到一个垃圾值,因为数组中没有存储实际值。