好吧,我将尽可能让我理解这一点!
#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];
}
}
它是用于计算第一列之和的代码。我不知道如何实现它来做我想要的事情,因为
col[i]
必须具有NULL值才能将总和取代否则它只会打印出一堆乱码。
注:
col[0]
应该显示在第1列中,col[1]
在第2列中等等。>>TLDR:我的问题是:如何将1,2,3 ... n列的和存储到变量中,然后比较它们以找到最大的和?好吧,我将尽我所能把它理解为可以理解的! #... col[i] += a[i][0]
到
col[i] += a[j][i]
由于您的代码,您只添加了每一行的第一个元素。第一个[]
表示行,第二个[]
表示列。这种轻微的变化是将行的每个列元素加到col[i]
中的列索引。因为我不知道您的文本文件的外观,所以我想肯定会得到带有有效元素的10x10矩阵。