编写Java程序,求一个3*3矩阵对角线元素之和。
时间: 2024-01-08 14:06:12 浏览: 28
好的,下面是Java程序的代码实现:
```java
public class Main {
public static void main(String[] args) {
int[][] matrix = {{1,2,3},{4,5,6},{7,8,9}}; // 定义一个3*3矩阵
int sum = 0; // 用于累加对角线元素之和
for (int i = 0; i < matrix.length; i++) {
sum += matrix[i][i]; // 累加左上到右下的对角线元素
sum += matrix[i][matrix.length - i - 1]; // 累加右上到左下的对角线元素
}
// 输出对角线元素之和
System.out.println("3*3矩阵对角线元素之和为:" + sum);
}
}
```
程序中,我们定义了一个3*3的矩阵,并使用for循环累加左上到右下和右上到左下的对角线元素之和,最后输出结果。
相关问题
使用java语言编写下列题目,对99个数按照从大到小的顺序排列 3.编写一个JAVA程序在屏幕上输出1!+2!+...+10!的和 4.判断101-200之间有多少个素数 5.输入两个正整数m和n,求其最大公约数和最小公倍数 5/22 、、、 5/23 1.求一个4*4矩阵对角线元素之和
3. 计算1!+2!+...+10!的和
```java
public class FactorialSum {
public static void main(String[] args) {
int n = 10;
int sum = 0;
int factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
sum += factorial;
}
System.out.println("1! + 2! + ... + 10! = " + sum);
}
}
```
4. 判断101-200之间有多少个素数
```java
public class PrimeNumbers {
public static void main(String[] args) {
int count = 0;
for (int i = 101; i <= 200; i++) {
if (isPrime(i)) {
count++;
}
}
System.out.println("101-200之间素数的个数为:" + count);
}
/**
* 判断一个数是否为素数
* @param num 待判断的数
* @return 是否为素数
*/
private static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
}
```
5. 输入两个正整数m和n,求其最大公约数和最小公倍数
```java
import java.util.Scanner;
public class GcdLcm {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个数m:");
int m = scanner.nextInt();
System.out.print("请输入第二个数n:");
int n = scanner.nextInt();
int gcd = getGcd(m, n);
int lcm = getLcm(m, n);
System.out.println(m + "和" + n + "的最大公约数为:" + gcd);
System.out.println(m + "和" + n + "的最小公倍数为:" + lcm);
}
/**
* 计算两个数的最大公约数
* @param m 第一个数
* @param n 第二个数
* @return 最大公约数
*/
private static int getGcd(int m, int n) {
while (n != 0) {
int r = m % n;
m = n;
n = r;
}
return m;
}
/**
* 计算两个数的最小公倍数
* @param m 第一个数
* @param n 第二个数
* @return 最小公倍数
*/
private static int getLcm(int m, int n) {
return m * n / getGcd(m, n);
}
}
```
6. 求一个4*4矩阵对角线元素之和
```java
public class DiagonalSum {
public static void main(String[] args) {
int[][] matrix = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}};
int sum = 0;
for (int i = 0; i < matrix.length; i++) {
sum += matrix[i][i];
}
System.out.println("4*4矩阵对角线元素之和为:" + sum);
}
}
```
输入一个4*4的矩阵,编写程序实现以下功能: (1)求出其中最小值及其所在的行号和列号; (2)求出对角线元素之和。 选做:输入m,n,确定数组的大小,再输入数组的内容,最后求解。用Java编写
好的,我可以帮你编写这个程序。以下是Java代码:
```java
import java.util.Scanner;
public class MatrixOperations {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入矩阵的行数:");
int m = scanner.nextInt();
System.out.print("请输入矩阵的列数:");
int n = scanner.nextInt();
int[][] matrix = new int[m][n];
System.out.println("请输入矩阵的元素:");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = scanner.nextInt();
}
}
int min = matrix[0][0];
int minRow = 0;
int minCol = 0;
int diagonalSum = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
if (matrix[i][j] < min) {
min = matrix[i][j];
minRow = i;
minCol = j;
}
if (i == j) {
diagonalSum += matrix[i][j];
}
}
}
System.out.println("矩阵中最小值为:" + min + ",它所在的行号为:" + minRow + ",列号为:" + minCol);
System.out.println("矩阵对角线元素之和为:" + diagonalSum);
}
}
```
运行程序后,你可以按照提示输入矩阵的行数和列数,然后输入矩阵的元素。程序会输出矩阵中最小值及其所在的行号和列号,以及矩阵对角线元素之和。