天天打卡一小时第十四天
- 问题描述
3-4 矩阵运算
给定一个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, i, j, sum = 0;
do{
scanf("%d", &n);
}while( n > 10 || n <= 1 ); // 保证n的范围
int a[n][n];
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[i][n-1]; // 最后一列
sum -= a[n-1][i]; // 最后一行
sum -= a[i][n-i-1]; // 斜对角线
}
sum += a[0][n-1] + a[n-1][0] + a[n-1][n-1]; // 加上右上角、右下角和左下角
printf("%d\n", sum);
return 0;
}
标签:int,sum,矩阵,天天,第十四天,对角线,打卡 From: https://www.cnblogs.com/newzeon/p/17497660.html