/* return the largest element in map[size][size] */
double map_max(size_t size, double **map) {
double max = 0;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
if (max < map[]) {
max = map[];
}
}
}
return max;
}
这会返回map [] []中的最大元素吗? (也会做同样的事情,但对于最小的元素)
答案 0 :(得分:1)
您的地图查找似乎没有下标,并且您在max
声明中遗漏了分号。还存在数组中的最大值小于0的风险,在这种情况下,您的函数将返回0而不是真正的最大值。你可以通过重新定义最大值以取一些默认值(比如map[0][0]
或负无穷大)来解决这个问题。
否则,如果数组维度为size
size
,是的,这将找到最大值。
答案 1 :(得分:0)
map[]
是无效的语法。您需要正确索引数组。
if (max < map[i][j]) {
max = map[i][j];
}
答案 2 :(得分:0)
如果每个数组元素都小于零,则不会。
您可以使用max
初始化map[0][0]
。
答案 3 :(得分:0)
要逐步执行二维数组,您需要两个for循环。从2d数组映射返回第i行,第j列的值的正确语法是map[i][j]
。
/* return the largest element in map[size][size] */
double map_max(size_t size, double **map) {
double max = 0;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
if (map[i][j] > max) {
max = map[i][j];
}
}
}
return max;
}