Advertisement
Argetim98

Matrix-Swapped diagonals

May 24th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.79 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.     int matt[100][100];
  5.     int n,i,j,k;
  6.     scanf("%d", &n);
  7.     for(i=0; i<n; i++){
  8.         for(j=0; j<n; j++){
  9.             scanf("%d", &matt[i][j]);
  10.         }
  11.     }
  12.     //Main diagonal
  13.     int main_diag[100];
  14.     for(i=0; i<n; i++){
  15.         for(j=0; j<n; j++){
  16.             if(i==j)
  17.             main_diag[j] = matt[i][j];
  18.         }
  19.     }
  20.  
  21.     //Opposite diagonal
  22.     int opposite_diag[100];
  23.      for(i=0; i<n; i++){
  24.         for(j=0; j<n; j++){
  25.             if(i+j == n-1)
  26.             opposite_diag[j] = matt[i][j];
  27.         }
  28.     }
  29.  
  30.     //Printing the original matrix before making any changes...
  31.     printf("The original matrix: \n");
  32.     for(i=0; i<n; i++){
  33.         for(j=0; j<n; j++){
  34.             printf("%d\t", matt[i][j]);
  35.         }
  36.         printf("\n");
  37.     }
  38.  
  39.     //Adding the opposite diagonal on the main diagonals position
  40.     for(i=0; i<n; i++){
  41.         for(j=0, k=n-1; j<n, k>=0; j++, k--){
  42.         if(i==j)//Main diagonal
  43.             matt[i][j] = opposite_diag[k];
  44.         }
  45.     }
  46.  
  47.     //Adding the main diagonal on the opposite diagonals position
  48.     for(i=0; i<n; i++){
  49.         for(j=0, k=n-1; j<n, k>=0; j++, k--){
  50.         if(i+j == n-1)//Opposite diagonal
  51.             matt[i][j] = main_diag[k];
  52.  
  53.         }
  54.     }
  55.  
  56.     printf("\nThe main diagonal elements are: \n");
  57.     for(i=0; i<n; i++){
  58.         printf("%d\t", main_diag[i]);
  59.     }
  60.  
  61.     printf("\n\nThe opposite diagonal elements are: \n");
  62.     for(i=n-1; i>=0; i--){
  63.         printf("%d\t", opposite_diag[i]);
  64.     }
  65.  
  66.     //Printing the new matrix
  67.     printf("\n\nThe final matrix with swapped diagonals: \n");
  68.     for(i=0; i<n; i++){
  69.         for(j=0; j<n; j++){
  70.             printf("%d\t", matt[i][j]);
  71.         }
  72.         printf("\n");
  73.     }
  74.  
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement