编写一个程序,使用二维数组存储一个 3x3 的矩阵,并计算并输出矩阵的对角线元素之和。C语言
时间: 2024-10-24 17:16:25 浏览: 41
在C语言中,你可以创建一个3x3的二维数组,初始化矩阵,然后计算并对角线元素求和。以下是相关的代码示例:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main() {
int matrix[ROWS][COLS] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9} // 你可以根据需要填充其他值
};
int sum_diagonal1 = 0; // 对左上到右下的对角线求和
int sum_diagonal2 = 0; // 对左下到右上的对角线求和
for (int i = 0; i < ROWS && i < COLS; i++) {
sum_diagonal1 += matrix[i][i]; // 计算主对角线
sum_diagonal2 += matrix[i][ROWS-i-1]; // 计算副对角线
}
printf("主对角线元素之和: %d\n", sum_diagonal1);
printf("副对角线元素之和: %d\n", sum_diagonal2);
return 0;
}
```
在这段代码中,我们首先定义了一个3x3的二维数组`matrix`,然后通过两个嵌套循环分别计算了主对角线(从左上到右下)和副对角线(从左下到右上)的元素之和。最后,我们打印出这两个对角线的和。
相关问题
java实现定义一个二维数组用于存储一个矩阵的元素值,并求出矩阵的两条对角线元素之和,然后输出计算结果。
在Java中,你可以通过创建一个二维数组来表示矩阵,并使用嵌套循环来遍历矩阵。下面是一个简单的示例代码,演示如何定义数组、计算对角线元素之和并输出结果:
```java
public class Main {
public static void main(String[] args) {
int[][] matrix = new int[3][3]; // 定义一个3x3的二维数组
matrix[0][0] = 1;
matrix[0][1] = 2;
matrix[0][2] = 3;
matrix[1][0] = 4;
matrix[1][1] = 5;
matrix[1][2] = 6;
matrix[2][0] = 7;
matrix[2][1] = 8;
matrix[2][2] = 9;
// 计算主对角线(从左上到右下)的元素之和
int diagonalSum1 = getDiagonalSum(matrix, true);
// 计算副对角线(从右上到左下)的元素之和
int diagonalSum2 = getDiagonalSum(matrix, false);
// 输出结果
System.out.println("主对角线元素之和: " + diagonalSum1);
System.out.println("副对角线元素之和: " + diagonalSum2);
}
// 辅助函数,计算指定方向的对角线元素之和
private static int getDiagonalSum(int[][] matrix, boolean isMain) {
int sum = 0;
for (int i = 0; i < matrix.length; i++) {
if (isMain && i == i || !isMain && i == matrix.length - 1 - i) { // 对于主对角线,i=i;对于副对角线,i=matrix.length-i-1
sum += matrix[i][i];
}
}
return sum;
}
}
```
在这个例子中,`getDiagonalSum`函数接受一个二维数组和一个布尔值,指示是否计算主对角线。当你运行这个程序,它会输出两条对角线元素的总和。
编程求一个用二维数组表示的3*3的int类型的矩阵对角线元素之和,要求先给矩阵赋值,分行输出矩阵值,最后输出对角线元素之和的值。
在Java中,你可以使用一个二维数组(Array 2D)来存储3x3矩阵,并计算对角线元素之和。以下是相应的代码示例:
```java
public class Main {
public static void main(String[] args) {
int[][] matrix = new int[3][3]; // 创建一个3x3的二维数组
int sumDiagonal = 0; // 定义变量存储对角线元素之和
// 给矩阵赋值
matrix[0][0] = 1;
matrix[0][1] = 2;
matrix[0][2] = 3;
matrix[1][0] = 4;
matrix[1][1] = 5;
matrix[1][2] = 6;
matrix[2][0] = 7;
matrix[2][1] = 8;
matrix[2][2] = 9;
// 分行输出矩阵值
printMatrix(matrix);
// 计算并输出对角线元素之和
for (int i = 0; i < 3; i++) {
sumDiagonal += matrix[i][i]; // 主对角线
if (i != 2) { // 添加副对角线,注意2行时只有一个元素
sumDiagonal += matrix[i][2-i];
}
}
System.out.println("对角线元素之和为:" + sumDiagonal);
}
// 打印矩阵的方法
public static void printMatrix(int[][] matrix) {
for (int row = 0; row < 3; row++) {
for (int col = 0; col < 3; col++) {
System.out.print(matrix[row][col] + " ");
}
System.out.println(); // 换行
}
}
}
```
在这个例子中,我们首先初始化了3x3的矩阵,并赋予每个元素一个数值。接着,我们使用两个嵌套循环遍历矩阵,分别计算主对角线和副对角线的元素,并累加到`sumDiagonal`上。最后,我们打印出整个矩阵以及对角线元素之和。
阅读全文