存储矩阵列和,并进行比较以找到最大的[C]

问题描述 投票:0回答:1

TLDR:我的问题是:我如何将1,2,3 ... n列的和存储到var中,然后比较它们以找到最大的和。

好吧,我将尽我所能把这个解释得可以理解!

#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]的尺寸,打印出它的元素,并找到id和最大的列。此var的名称是英文。所以我完成了任务的2/3我们专注于此代码:

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

它是用于计算第一列之和的代码idk如何实现它来做我想要的。因为col [i]必须具有NULL值才能代替sum否则它只会打印出一堆乱码注意col [0]应该显示在第1列,col [1]第2列,等等。

c matrix compare store
1个回答
0
投票

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

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

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

由于您的代码,您只添加了每一行的第一个元素。第一个[]表示行,第二个[]表示列。这种轻微的变化是将行的每个列元素加到col[i]中的列索引。因为我不知道您的文本文件的外观,所以我想肯定会得到带有有效元素的10x10矩阵。

© www.soinside.com 2019 - 2024. All rights reserved.