Advertisement
KvArt

Transponovanje matrice

Jul 12th, 2022
604
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.12 KB | None | 0 0
  1. /*Sastaviti na jeziku C program za transponovanje
  2. pravougaone matrice celih brojeva. Matricu
  3. smestiti u dinamičku zonu memorije. Postupak
  4. ponavljati sve dok se za dimenzije matrice ne
  5. unesu nekorektne vrednosti.*/
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. void main () {
  10. int **a, **b, m, n, i, j;
  11. printf ("\nBroj vrsta i kolona? ");
  12. scanf ("%d%d", &m, &n);
  13. while (m>0 && n>0) {
  14. /* Stvaranje matrice i citanje elemenata matrice: */
  15. a = malloc (m*sizeof(int*));
  16. for (i=0; i<m; i++) {
  17. a[i] = malloc (n*sizeof(int));
  18. printf ("%2d. vrsta? ", i);
  19. for (j=0; j<n; j++) scanf ("%d", &a[i][j]);
  20. }
  21. /* Obrazovanje transponovane matrice: */
  22. b = malloc (n*sizeof(int*));
  23. for (i=0; i<n; i++) {
  24. b[i] = malloc (m*sizeof(int));
  25. for (j=0; j<m; j++) b[i][j] = a[j][i];
  26. }
  27. /* Ispisivanje rezultata: */
  28. printf ("\nTransponovana matrica:\n");
  29. for (i=0; i<n; i++){
  30. for (j=0; j<m; j++) printf ("%5d", b[i][j]);
  31. printf ("\n");
  32. }
  33. /* Unistavanje matrica: */
  34. for (i=0; i<m; i++) free (a[i]); free (a);
  35. for (i=0; i<n; i++) free (b[i]); free (b);
  36. /* Citanje dimenzija matrice: */
  37. printf ("\nBroj vrsta i kolona? ");
  38. scanf ("%d%d", &m, &n);
  39. }
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement