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列,等等。
如果我从示例中正确猜出,您从文件中仅获得一个10x10矩阵,现在您想要对列中的元素(垂直)求和,而对行中的元素(水平)求和,尝试更改
col[i] += a[i][0]
到
col[i] += a[j][i]
由于您的代码,您只添加了每一行的第一个元素。第一个[]
表示行,第二个[]
表示列。这种轻微的变化是将行的每个列元素加到col[i]
中的列索引。因为我不知道您的文本文件的外观,所以我想肯定会得到带有有效元素的10x10矩阵。