9.2求一个3×3矩阵位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。(算法不能通过所有累加后删除中间数的方法实现,必须要判断边缘的条件才能累加。)
直接判断 行索引 等于0,或者 列索引等于 0 或者 行索引等于2 或 列索引等于 2 ,然后把满足要求的数相加就可以了
#include <stdio.h>
#include <string.h>
int main()
{
int a[3][3] = {1,2,3,4,5,6,7,8,9};
int i, j, sum = 0;
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
if (i==0 || i==2 || j==0 || j==2)
sum += a[i][j];
}
}
printf("sum = %d", sum);
return 0;
}
题目描述
求一个3×3矩阵对角线元素之和。
输入
矩阵
输出
主对角线 副对角线 元素和
样例输入
1 2 3
1 1 1
3 2 1
样例输出
3 7
代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[3][3],i,j,sum=0,s=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(i==j)
sum=sum+a[i][j];
if(i==0&&j==2)
s=s+a[i][j];
if(i==1&&j==1)
s=s+a[i][j];
if(i==2&&j==0)
s=s+a[i][j];
}
}
printf("%d %d",sum,s);
return 0;
}
以下是一个求解3x3矩阵边缘元素之和的C程序示例:
#include <stdio.h>
int main() {
int matrix[3][3];
int sum = 0;
printf("请输入3x3矩阵的元素:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 累加第一行和最后一行的元素
for (int j = 0; j < 3; j++) {
sum += matrix[0][j]; // 第一行元素
sum += matrix[2][j]; // 最后一行元素
}
// 累加第一列和最后一列的元素(不包括角元素)
for (int i = 1; i < 2; i++) {
sum += matrix[i][0]; // 第一列元素
sum += matrix[i][2]; // 最后一列元素
}
printf("边缘元素之和为:%d\n", sum);
return 0;
}
该程序通过键盘输入获取3x3矩阵的元素,然后按照边缘元素的定义,使用循环累加第一行、最后一行、第一列和最后一列(不包括角元素)的元素值。最终输出累加结果,即矩阵边缘元素之和。