存储矩阵列总和并比较它们以找到最大的
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 矩阵。
如何将 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 矩阵。