矩阵的行、列和对角线的和
sum of rows,columns and diagonals of a matrix
本文关键字:对角线 更新时间:2023-10-16
求矩阵的对角线、行和列之和的最大值的程序。无法找到对角线和代码的问题。
输入:2
16 4
-3 5
预期输出应该是21,而实际输出是9。
#include<stdio.h>
//Main Function
int main()
{
int n,a[101][101],i,j;
int max=0,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i]);
}
}
j=0;
//COLOUMN SUM
while(j<n)
{
sum=0;
for(i=0;i<n;i++)
sum+=a[i][j];
if(sum>max)
max=sum;
j++;
}
i=0;
//ROW SUM
while(i<n)
{
sum=0;
for(j=0;j<n;j++)
sum+=a[i][j];
i++;
if(sum>max)
max=sum;
}
//DIAGONAL SUM the main problem
sum=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i==j)
sum+=a[i][j];
}
}
if(sum>max)
max=sum;
sum=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i+j==n-1)
sum+=a[i][j];
}
}
if(sum>max)
max=sum;
printf("%d",max);
return 0;
}
读取数组错误:
scanf("%d",&a[i]);
应该是:
scanf("%d",&a[i][j]);
为什么不在读循环中使用j
?
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i]); // <== Why no j here?????
}
}
您没有正确地将元素读入数组只要改变这个表述,你就会得到正确的答案scanf("% d",[我]),scanf("% d",[我][j])
相关文章:
- 如何在cuSparse中得到稀疏矩阵的对角线
- 如何打印数组对角线的一侧
- 检查 2D 网格的某个元素是否与另一个元素共享对角线、水平线或垂直线
- 我必须计算方阵的对角线元素之和的差值
- 形成一个斐波那契三角形,使得每个数字是上面左对角线或右对角线上两个数字的总和
- 给定一个 3 x 3 矩阵或任何 n x n 矩阵,为什么我的以下函数找不到对角线差异?
- C++*对角线差异*问题,我哪里出错了?
- 方阵的对角线差
- 如何在 CSR 矩阵的对角线块中计算每行的非零数
- 矩阵中主对角线下的最高偶数.超大数字的解决方案?
- 矩阵c++的对角线元素的和
- 打印两个反向空心矩形,然后在其内部打印两条对角线
- 具有块对角线结构的特征矩阵
- 了解 8 女王拼图的对角线搜索
- 如何将矩阵中的所有对角线设置为等于零?
- 尝试获取矩阵的正确对角线会导致"vector out of range"错误
- 返回C 中2D阵列的对角线元素总和
- 在矩阵中找到与主对角线平行的元素
- 矩阵中独立对角线的总和
- 创建用户在C++中定义的星形对角线