使用指针算法搜索2D数组

时间:2017-05-24 16:36:51

标签: c++ pointers multidimensional-array

对于家庭作业,我们已被告知要编写sum,find_max和find_min等函数,这些函数在2D矩阵上运行。我会使用这样的东西来正常找到最大值。

double find_max(double *the_array, int row_size, int col_size) {
    double maxValue = *the_array[0][0];
    for (int i = 0; i < col_size; i++) {
         for (int j = 0; j < row_size; j++) {
             if (*the_array[i][j] > maxValue) {
                  maxValue = *the_array[i][j];
             }
         }
     }
 }

但是,我们已经被告知使用指针代替数组来完成这项功课。我猜这意味着我需要使用指针算法来完成数组,但我不知道该怎么做。我使用什么样的循环?我怎么知道何时告诉它停止?

2 个答案:

答案 0 :(得分:0)

喜欢这个 你的the_array实际上只是大小行* col的线性记忆。

double find_max(double *the_array, int row_size, int col_size)
{
    double *iterator = the_array;
    double *end = the_array + row_size * col_size;
    double max = DBL_MIN;

    while (iterator < end) {
        if (*iterator > max)
            max = *iterator;

        ++iterator;
    }

    return max;
}

答案 1 :(得分:0)

the_array应该是指针在double上的指针。我的意思是:     inlineEditing: { keys: true, extraparam: { arg1: "bol_acct" }, serializeSaveData: function (postData) { var newPostData = $.extend(true, {}, postData); if (newPostData.oper === "add") { delete newPostData.id; // delete id parameter } return newPostData; } }