找到矩阵中总和最大的列并打印出来
Find the column with biggest sum in matrix and print it out
我正在编写一个程序,您输入 n 行 x m 列矩阵,然后找到总和最大的列并将该列打印出来,我正在尝试打印该列。任何帮助将不胜感激。
例如:
Input Output
4 5 6 4 0 0 4
4 2 3 2 2 2 4
6 5 2 1 0 1 6
我的结果:
Input Output
4 5 6 4 0 0
4 2 3 2 2 2 14
6 5 2 1 0 1
还有我的代码:
#include<stdio.h>
void Entermatrix(int a[][50], int &n,int &m)
{
printf("Enter matrix's rows: ");
scanf("%d",&n);
printf("Enter matrix's columns: ");
scanf("%d",&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
printf("A[%d][%d]= ",i,j);
scanf("%d",&a[i][j]);
}
}
void Printmatrix(int a[][50], int n, int m)
{
for(int i=0;i<n;i++){
for(int j=0;j<m;j++) {
printf("%5d",a[i][j]);
}
printf("\n");}
}
void Columnwithbiggestsum(int a[][50],int n,int m)
{
int max=0;
for(int i=0;i<m;i++)
{
int sum=0;
for(int j=0;j<n;j++){
sum = sum+a[j][i];
}
if (sum >max){
max=sum;
}
}
printf ("The biggest sum by column is: %d",max);
}
int main()
{
int a[50][50],n,m;
Entermatrix(a,n,m);
Printmatrix(a,n,m);
Columnwithbiggestsum(a,n,m);
return 0;
}
在“Columnwithbiggestsum”函数中,您可以保留另一个变量来存储具有最高总和的列号。
获得列号后,您可以在矩阵中迭代以打印该列的内容。
修改了您的代码以打印该列
void Columnwithbiggestsum(int a[][50],int n,int m)
{
int max=0;
int columnNo=0;
for(int i=0;i<m;i++)
{
int sum=0;
for(int j=0;j<n;j++){
sum = sum+a[j][i];
}
if (sum >max){
max=sum;
columnNo = i;
}
}
for(int i=0;i<n;i++)
{
printf ("%d \n", a[i][columnNo]);
}
}
我正在编写一个程序,您输入 n 行 x m 列矩阵,然后找到总和最大的列并将该列打印出来,我正在尝试打印该列。任何帮助将不胜感激。
例如:
Input Output
4 5 6 4 0 0 4
4 2 3 2 2 2 4
6 5 2 1 0 1 6
我的结果:
Input Output
4 5 6 4 0 0
4 2 3 2 2 2 14
6 5 2 1 0 1
还有我的代码:
#include<stdio.h>
void Entermatrix(int a[][50], int &n,int &m)
{
printf("Enter matrix's rows: ");
scanf("%d",&n);
printf("Enter matrix's columns: ");
scanf("%d",&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
printf("A[%d][%d]= ",i,j);
scanf("%d",&a[i][j]);
}
}
void Printmatrix(int a[][50], int n, int m)
{
for(int i=0;i<n;i++){
for(int j=0;j<m;j++) {
printf("%5d",a[i][j]);
}
printf("\n");}
}
void Columnwithbiggestsum(int a[][50],int n,int m)
{
int max=0;
for(int i=0;i<m;i++)
{
int sum=0;
for(int j=0;j<n;j++){
sum = sum+a[j][i];
}
if (sum >max){
max=sum;
}
}
printf ("The biggest sum by column is: %d",max);
}
int main()
{
int a[50][50],n,m;
Entermatrix(a,n,m);
Printmatrix(a,n,m);
Columnwithbiggestsum(a,n,m);
return 0;
}
在“Columnwithbiggestsum”函数中,您可以保留另一个变量来存储具有最高总和的列号。
获得列号后,您可以在矩阵中迭代以打印该列的内容。
修改了您的代码以打印该列
void Columnwithbiggestsum(int a[][50],int n,int m)
{
int max=0;
int columnNo=0;
for(int i=0;i<m;i++)
{
int sum=0;
for(int j=0;j<n;j++){
sum = sum+a[j][i];
}
if (sum >max){
max=sum;
columnNo = i;
}
}
for(int i=0;i<n;i++)
{
printf ("%d \n", a[i][columnNo]);
}
}