c语言 求4*4矩阵主对角线元素之和,副对角线元素之和
3个回答
展开全部
【输入】
输入一个4×4的整数矩阵。
分4行,每行4个整数,整数之间以空格间隔。
【输出】
分行输出矩阵的外围元素之和,主对角线元素之和以及副对角线元素之和。
【输入示例】
1 2 4 5
6 7 8 9
0 1 2 3
4 5 6 7
【输出示例】
52
17
18
【提示】
求三类元素的和,可以定义三个不同的和变量,在遍历数组元素的循环中通过三次条件判断分别进行三类元素的求和。设行下标为i,列下标为j,考察三类元素的下标特征,外围元素要么行下标i == 0或者i == n - 1(这里n为4),要么列下标j ==0或者j == n - 1;主对角线上的元素行下标和列下标相等(i == j);副对角线上的元素行下标和列下标之和等于n - 1(i + j == n - 1)。
展开全部
#include <stdio.h>
int main() {
int a[4][4],i,j,msum = 0,ssum = 0;
for(i = 0; i < 4; ++i) {
for(j = 0; j < 4; ++j) {
printf("a[%d][%d] = ",i,j);
scanf("%d",&a[i][j]);
}
}
printf("矩阵元素表:\n");
for(i = 0; i < 4; ++i) {
for(j = 0; j < 4; ++j) {
printf("%4d",a[i][j]);
}
printf("\n");
}
for(i = 0; i < 4; ++i) {
msum += a[i][i];
ssum += a[i][3 - i];
}
printf("主对角线的和是:%d\n斜对角线的和是:%d\n\n",msum,ssum);
return 0;
}
int main() {
int a[4][4],i,j,msum = 0,ssum = 0;
for(i = 0; i < 4; ++i) {
for(j = 0; j < 4; ++j) {
printf("a[%d][%d] = ",i,j);
scanf("%d",&a[i][j]);
}
}
printf("矩阵元素表:\n");
for(i = 0; i < 4; ++i) {
for(j = 0; j < 4; ++j) {
printf("%4d",a[i][j]);
}
printf("\n");
}
for(i = 0; i < 4; ++i) {
msum += a[i][i];
ssum += a[i][3 - i];
}
printf("主对角线的和是:%d\n斜对角线的和是:%d\n\n",msum,ssum);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
核心代码:
int i,j,sum=0,arr[4][4];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(i+j==3 || i==j)
sum+=arr[i][j];
具体的代码实现由你自己完成
int i,j,sum=0,arr[4][4];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(i+j==3 || i==j)
sum+=arr[i][j];
具体的代码实现由你自己完成
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询