赞
踩
1、矩阵运算(二维数组的基本使用)
给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。
输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。
在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
- 4
- 2 3 4 1
- 5 6 1 1
- 7 1 8 1
- 1 1 1 1
结尾无空行
35
结尾无空行
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);//定义数组个数
int a[n][n];
int i=0,j=0;
int sum=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);//对数组赋值
sum+=a[i][j];//先算矩阵所有数的总和
}
}
for(i=0;i<n;i++)
{
sum-=a[n-1][i];//用总和减去最后一行
sum-=a[i][n-1];//用总和减去最后一列
}
for(i=0,j=n-1;i<n,j>=0;i++,j--)
{
sum-=a[i][j];//用总和减去对角线
}
sum=sum+a[n-1][n-1]+a[1][n-1]+a[n-1][1];//这时发现有三个点为对角线、最后一列、最后一行的交点,将三点的值加回
printf("%d",sum);
return 0;
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。