返回数组中的最大元素

时间:2016-11-23 20:45:18

标签: c arrays iteration

/* 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 [] []中的最大元素吗? (也会做同样的事情,但对于最小的元素)

4 个答案:

答案 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;
}