Java-program til at acceptere en matrix af orden M*N og udskifte diagonalerne
I denne øvelse lærer vi, hvordan man accepterer en matrix af orden M*N og udskifter diagonalerne. Men før du går videre, hvis du ikke er bekendt med begreberne for arrayet, så tjek artiklen Arrays in Java.
Input: Indtast matrixen Elementer:
1 2 3
6 5 4
7 8 9
Output:
3 2 1
4 5 6
9 8 7
Program 1:Udskift diagonalerne i en matrix
I dette program vil vi se, hvordan man accepterer matrixen af orden M*N og udskifter diagonalerne med brugerdefinerede værdier.
Algorithme
- Start
- Deklarer variabler for matrixstørrelsen.
- Bed brugeren om at initialisere matrixrækkerne og kolonnerne
- Tjek, om antallet af rækker og kolonner er ens eller ej.
- Hvis lig, så bed brugeren om at initialisere matrixen.
- Udskriv den originale matrix.
- Skift de diagonale elementer.
- Udskriv den udskiftede matrix.
- Hvis rækker og kolonner ikke er ens, skal du udskrive den samme meddelelse.
- Stop
Nedenfor er koden til det samme.
//Java Program to interchange the diagonals*/
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
// declare variables
int m, n, temp;
// To take input from the user
Scanner sc = new Scanner(System.in);
System.out.println("Enter number of rows ");
// Initialize the number of rows
m = sc.nextInt();
System.out.println("Enter number of columns ");
// Initialize the number of columns
n = sc.nextInt();
// declare a mxn order array
int a[][] = new int[m][n];
// Interchange the diagonals only when it is a square matrix
if (m == n)
{
System.out.println("Enter all the values of matrix ");
// Initialize the matrix elements
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
a[i][j] = sc.nextInt();
}
}
System.out.println("Original Matrix:");
// print the original matrix
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println("");
}
// Interchange the diagonals by swapping
for (int j = 0; j < m; j++)
{
temp = a[j][j];
a[j][j] = a[j][n - 1 - j];
a[j][n - 1 - j] = temp;
}
System.out.println("After interchanging diagonals of matrix ");
// print interchanged matrix
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(a[i][j] + " ");
}
System.out.println("");
}
}
else
{
System.out.println("Rows not equal to columns");
}
}
}
Indtast antal rækker 3
Indtast antal kolonner 3
Indtast alle værdierne af matrix 1 2 3 4 5 6 7 8 9
Original Matrix:
1 2 3
4 5 6
7 8 9
Efter udskiftning af diagonaler af matrix
3 2 1
4 5 6
9 8 7
Program 2:Udskift diagonalerne i en matrix
I dette program vil vi se, hvordan man accepterer matrixen af orden M*N og udskifter diagonalerne med foruddefinerede værdier.
Algorithme
- Start
- Deklarer og initialiser matrixstørrelsen.
- Tjek, om antallet af rækker og kolonner er ens eller ej.
- Hvis ens, så initialiser elementerne i matrixen.
- Udskriv den originale matrix.
- Kald en metode til at udveksle diagonalerne.
- Skift de diagonale elementer.
- Udskriv den udskiftede matrix.
- Hvis rækker og kolonner ikke er ens, skal du udskrive den samme meddelelse.
- Stop
Nedenfor er koden til det samme.
//Java Program to interchange the diagonals*/
import java.util.*;
public class Main
{
//Method to interchange the diagonals
static void interchangeDiagonals(int arr[][])
{
int temp=0;
int m=arr.length; //Variable to store the number of rows
int n=arr[0].length; //Variable to store the number of columns
System.out.println("Original Matrix:");
// print the original matrix
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
System.out.print(arr[i][j] + " ");
}
System.out.println("");
}
// Interchange the diagonals by swapping
for (int j = 0; j <m; j++)
{
temp = arr[j][j];
arr[j][j] = arr[j][n - 1 - j];
arr[j][n - 1 - j] = temp;
}
System.out.println("After interchanging diagonals of matrix ");
// print interchanged matrix
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println("");
}
}
public static void main(String[] args)
{
// declare variables
int rows=3, columns=3;
// Interchange the diagonals only when it is a square matrix
if (rows == columns)
{
int arr[][] = { { 2, 9, 8 }, { 7, 6, 4 }, { 3, 9, 2 } }; //Matrix Declaration
interchangeDiagonals(arr);
}
else
{
System.out.println("Rows not equal to columns");
}
}
}
Original matrix:
2 9 8
7 6 4
3 9 2
Efter udskiftning af diagonaler på matrixen
8 9 2
7 6 4
2 9 3