存储矩阵列总和并比较它们以找到最大的

Storing matrix colum sums and comparing them to find the largest

如何将 1,2,3...n 列的总和存储到一个变量中,然后比较它们以找到最大的总和?

#include <stdio.h>
#include <math.h>
#define NUM_ITEMS 1000

int array[NUM_ITEMS];

int main(){
    FILE* file;
    int a[10][10];
    int i,j, count = 0;
    int n=0;

    file = fopen("Matrica.txt", "r");

    while(count < NUM_ITEMS && fscanf(file, "%d", &array[count]) == 1)
        count++;

    n = sqrt(count);

    printf("Dimenzije matrice: %dx%d ",n,n);

    rewind(file);
    for(i=0;i<n;i++)
    for(j=0;j<n;j++){
        fscanf(file,"%d",&a[i][j]);
    }

    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            printf("\nElementi matrice: %d \n",a[i][j]);
        }
    }

    int col[n];

    for(j=0;j<n;j++){
        for(i=0;i<n;i++){
            col[i] += a[i][0];
        }
    }
    printf("\nDBG:%d",col[0]);
    fclose(file);  
}

任务是找到a[10][10]的维度,打印出它的元素并找到总和最大的列。这个 var 的英文名称是什么。 到目前为止,我已经完成了任务的 2/3。

代码如下:

for(j=0;j<n;j++){
        for(i=0;i<n;i++){
            col[i] += a[i][0];
        }
    }

这是计算第1列总和的代码

我不知道如何实现它来做我想做的事,因为 col[i] 必须有 NULL 值才能让 sum 占据它的位置 否则它只会打印出一堆乱码。

注意: col[0] 应该显示第 1 列,col[1] 第 2 列等

如果我从示例中猜对了,您只从文件中得到一个 10x10 矩阵,现在您想要对列中的元素(垂直)而不是行(水平)中的元素求和尝试更改

col[i] += a[i][0] 

col[i] += a[j][i]

因为您的代码只添加了每一行的第一个元素。第一个[]表示行,第二个[]表示列。这个微小的变化是将行的每个列元素加到它在 col[i] 中的列索引。因为我不知道您的文本文件是什么样子,所以我想您肯定会得到包含有效元素的 10x10 矩阵。