Advertisement
green1ant

26-1

Jan 21st, 2019
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.34 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int* transpose(int* arr, int len){
  5.     static int offset = 0;
  6.     if(offset == len - 1){
  7.         return *(arr);
  8.     }else{
  9.         printf("offset = %d\n", offset);
  10.  
  11.         for (int i = offset; i < len; i++){
  12.             printf("%d <-> %d\n", *(arr + (offset)*len + i), *(arr + i*len + offset));
  13.             int temp = *(arr + (offset)*len + i);
  14.             *(arr + (offset)*len + i) = *(arr + i*len + offset);
  15.             *(arr + i*len + offset) = temp;
  16.         }
  17.  
  18.  
  19.         for (int i = 0; i < len; i++){
  20.             for (int j = 0; j < len; j++){
  21.                 printf("%5d ", *(arr + i*len + j));
  22.             }
  23.             printf("\n");
  24.         }
  25.         offset++;
  26.         return transpose(arr, len);
  27.     }
  28. }
  29.  
  30. int main()
  31. {
  32.     printf("Hello world!\n");
  33.  
  34.  
  35.     int *initial;
  36.     int n;
  37.  
  38.     printf("Enter n: ");
  39.     scanf("%d", &n);
  40.  
  41.     initial = (int*)malloc(n * n * sizeof(int));
  42.  
  43.     for (int i = 0; i < n; i++){
  44.         for (int j = 0; j< n; j++){
  45.             printf("arr[%d][%d] = ", i, j);
  46.             scanf("%d", (initial + i*n + j));
  47.         }
  48.  
  49.     }
  50.  
  51.     for (int i = 0; i < n; i++){
  52.          for (int j = 0; j < n; j++){
  53.             printf("%5d ", *(initial + i*n + j));
  54.          }
  55.          printf("\n");
  56.     }
  57.  
  58.  
  59.     transpose(initial, n);
  60.  
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement