用第一列的总和初始化一个变量

Initialize a variable with the sum of the first column

我制作了一个程序,它从二维数组中找到具有最小总和的列。 为了计算它,我启动了 lowestSum 函数的 min 变量。

目的

我试图用第一列的总和来初始化 min 变量,而不是给出一个特定的数字。到目前为止,我只提供了一个特定的数字就可以了。请看下面的代码:

因此,它应该如何存储第一列的总和,然后与其他列进行检查,最终找到具有最小值和的列?现在它只能通过专门提供 min 来工作。

#include<stdio.h>

#define ROWS 4
#define COLS 3

void printnumbers(int arr[][COLS]);
int lowestSum(int MovieRatings[][COLS]);
int main() {
    int arr[ROWS][COLS] = {{1, 2, 3},
                     {2, 3, 4},
                     {3, 4, 5},
                     {5, 15, 6}};
    printnumbers(arr);
    printf("the lowest sum is in column %d\n", lowestSum(arr));
return 0;
}


void printnumbers(int arr[][COLS]){

    int i,j;

    for(i = 0; i<ROWS; i++)
    {
        printf("\n");
        for(j = 0; j<COLS; j++)
        {
            printf("%d\t", arr[i][j]);
        }
    }
}




int lowestSum(int arr[][COLS]){
    int i, j, total, min,min_col;
    min = 20;                   //<------this is is intialization
    for (j = 0; j < COLS; j++) {
        total = 0;
        for (i = 0; i < ROWS; i++) {
            total += arr[i][j];    
            }
        if (min > total) {
            min = total;
            min_col = j+1;
            printf("\n");
        }
    }
    return min_col;
}

在对第一列求和后,该列暂时具有最小的总和。因此,如果您处于外循环的第一次迭代中,请设置 min.

    if (j == 0 || min > total) {
        min = total;
        min_col = j+1;
        printf("\n");
    }