Java >> Java tutorial >  >> Java

Java-program til at udveksle to rækker og kolonner i den givne matrix

I denne øvelse lærer vi, hvordan du udveksler to rækker og kolonner i den givne matrix. Men før du går videre, hvis du ikke er bekendt med begreberne for arrayet, så tjek artiklen Arrays in Java.

Nedenfor er den billedlige repræsentation af udvekslingen af ​​to rækker og kolonner i den givne matrix.

Input: Indtast matrixen:

1 2 3

4 5 6

7 8 9

Output: Efter udskiftning af rækker:2 og 3

1 2 3

7 8 9

4 5 6

Efter udskiftning af kolonner:1 og 3

3 2 1

9 8 7

6 5 4

Program 1:Udskift to rækker og kolonner

I dette program vil vi se, hvordan man kan udveksle to rækker og kolonner i den givne matrix, når værdierne er brugerdefinerede.

Algorithme

  1. Start
  2. Deklarer variabler for rækker og kolonnestørrelse.
  3. Bed brugeren om at initialisere antallet af rækker og kolonner.
  4. Deklarer en matrix med den størrelse.
  5. Bed brugeren om at initialisere matrixen.
  6. Udskriv den oprindelige matrix.
  7. Brug en while-løkke til at kontrollere, om brugeren ønsker at udskifte rækkerne eller kolonnen eller ingen.
  8. Brug sløjfer til at udveksle henholdsvis rækker og kolonner.
  9. Spørg brugeren, hvilke to rækker eller kolonner han/hun vil udveksle.
  10. Baseret på det skift rækker eller kolonneelementer.
  11. Vis resultatet.
  12. Stop

Nedenfor er koden til det samme.

/*Java Program to interchange any two rows and columns in the given matrix*/
import java.util.Scanner;
public class Main 
{
    public static void main(String[] args) 
    {
        int m,n;   //Declare the variables for rows and columns

        //Take input from the user
        Scanner sc = new Scanner(System.in);
        
        System.out.print("Enter number of rows in matrix:");
        m = sc.nextInt();  //Initialize the number of rows

        System.out.print("Enter number of columns in matrix:");
        n = sc.nextInt();  //Initialize the number of columns
 
        int arr[][] = new int[m][n];  //Declare a Matrix
        System.out.println("Enter all the elements of matrix:");
        for (int i = 0; i < m; i++) 
        {
            for (int j = 0; j < n; j++) 
            {
                arr[i][j] = sc.nextInt();
            }
        }

       //Print the original matrix
        System.out.println("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("");
        }

        //Check whether user want to interchange rows or columns
        while (true) 
        {
            System.out.println("Enter 1 to interchange rows");
            System.out.println("Enter 2 to interchange columns");
            System.out.println("Enter 3 to Exit");
            int n1=sc.nextInt();
            switch (n1) 
            {
                case 1:
                //Enter the rows whose datas you want to interchange 
                System.out.println("Enter the row numbers:");
                int x = sc.nextInt();   
                int y = sc.nextInt();
                int temp=0;
                for(int i = 0; i < m; i++)
                {
                    temp = arr[(x-1)][i];
                    arr[x-1][i] = arr[y-1][i];
                    arr[y-1][i] = temp;
                }
                //Print the matrix after interchanging elements
                System.out.println("Matrix after interchanging rows:"+x +" and "+y);
                for (int i = 0; i < m; i++) 
                {
                    for (int j = 0; j < n; j++) 
                    {
                        System.out.print(arr[i][j] + " ");
                    }
                System.out.println("");
                }
                break;
                case 2:
                //Enter the columns whose datas you want to interchange 
                System.out.println("Enter the column numbers:");
                int p = sc.nextInt();
                int q = sc.nextInt();
                int temp1=0;
                for(int i = 0; i < p; i++)
                {
                    temp1 = arr[i][(p-1)];
                    arr[i][p-1] = arr[i][(q-1)];
                    arr[i][q-1] = temp1;
                }
                //Print the matrix after interchanging elements
                System.out.println("Matrix after interchanging columns:"+p +" and "+q);
                for (int i = 0; i < m; i++) 
                {
                    for (int j = 0; j < n; j++) 
                    {
                        System.out.print(arr[i][j] + " ");
                    }
                System.out.println("");
                }
                break;
          	case 3:
                //Exit from the program
                System.exit(0);
            }
        }
    }
}


Indtast antallet af rækker i matrix:3
Indtast antallet af kolonner i matrix:3
Indtast alle elementerne i matrix:1 2 3 4 5 6 7 8 9
Originalen Matrix:
1 2 3
4 5 6
7 8 9
Indtast 1 for at udskifte rækker
Indtast 2 for at udveksle kolonner
Indtast 3 for at afslutte
1
Indtast rækkenumrene:3 2
Matrix efter udskiftning af rækker:3 og 2
1 2 3
7 8 9
4 5 6
Indtast 1 for at udskifte rækker
Indtast 2 for at udveksle kolonner
Indtast 3 for at afslutte
2
Indtast kolonnenumrene:1 3
Matrix efter udskiftning af kolonner:1 og 3
3 2 1
7 8 9
4 5 6
Indtast 1 for at udskifte rækker
Indtast 2 for at udveksle kolonner
Indtast 3 for at afslutte
3

Program 2:At udveksle to rækker og kolonner

I dette program vil vi se, hvordan man kan udveksle to rækker og kolonner i den givne matrix, når værdierne er foruddefinerede.

Algorithme

  1. Start
  2. Deklarer og initialiser matrixen.
  3. Udskriv den originale matrix.
  4. Indtast de kolonner, der skal udskiftes.
  5. Kald metoden til at udveksle kolonnerne.
  6. Skift tallene for at udskifte kolonnerne.
  7. Udskriv matrixen efter udskiftning af kolonner.
  8. Kald nu en metode til at udveksle rækkerne.
  9. Skift tallene for at udskifte rækkerne.
  10. Udskriv matrixen efter udskiftning af rækker.
  11. Stop.

Nedenfor er koden til det samme.

/*Java Program to interchange any two rows and columns*/
import java.io.*; 
  
public class Main 
{
    //To Print the arr
    public static void printMatrix(int[][] arr) 
    { 
        for (int i = 0; i < arr.length; i++) { 
            for (int j = 0; j < arr[0].length; j++) 
                System.out.print(arr[i][j] + " "); 
            System.out.println(); 
        } 
    } 
    
    //To Interchange Columns  
    public static void interchangeColumns(int[][] arr, 
                                             int K, int L) 
    { 
        for (int i = 0; i < arr.length; i++) { 
  
            // Swap two numbers 
            int temp = arr[i][K - 1]; 
            arr[i][K - 1] = arr[i][L - 1]; 
            arr[i][L - 1] = temp; 
        } 
        System.out.println("After Interchanging Column "+ K + " and "+ L+ " :");
        // Print arr 
        printMatrix(arr); 
    } 
    
    //To Interchange Rows  
    public static void interchangeRows(int[][] arr, int x, int y) 
    { 
        for (int i = 0; i < arr[0].length; i++) { 
            
            // Swap two numbers 
            int temp = arr[x - 1][i]; 
            arr[x - 1][i] = arr[y - 1][i]; 
            arr[y - 1][i] = temp; 
        } 
        System.out.println("After Interchanging Row "+ x + " and "+ y + " :");
        // Print arr 
        printMatrix(arr); 
    } 
    
    
      
    // Driver code 
    public static void main(String args[]) throws IOException 
    { 
        int arr[][] 
            = { { 2, 9, 8 }, { 7, 6, 4 }, { 3, 9, 2 } };  //Matrix Declaration and Initialization
            
        //Print Original arr    
        System.out.println("Original arr: ");
        printMatrix(arr); 
        
        // calling to exchange Columns
        int K = 1, L = 2; 
        interchangeColumns(arr, K, L); 
        
        // calling to exchange Rows
         int K1 = 1, L1 = 2; 
        interchangeRows(arr, K1, L1); 
          
        
    } 
} 


Original arr:
2 9 8
7 6 4
3 9 2
Efter udskiftning af kolonne 1 og 2:
9 2 8
6 7 4
9 3 2
Efter udskiftning af række 1 og 2:
6 7 4
9 2 8
9 3 2


Java tag