Guião laboratorial n.º 1 – exercício 17

“Desenvolva uma função que efetue a transposição numa matriz N*N de inteiros. A transposição consiste em trocar as linhas pelas colunas. A função recebe como argumentos o endereço inicial da matriz e o valor N (pode assumir que a matriz é quadrada).”

#include <stdio.h>
#define L1 3
#define C1 3

void transpor_q(int l, int c, int *m1)
{
  int *p, *q, aux[l],aux2[l],i,j;
  p=m1;
  q=m1;

  for(i=0; i<l; i++){
      for(j=0; j<c; j++, p++){
          aux[j][i]=*p;
          printf("%d\t", aux[j][i]);
          q=p;
      }
  printf("\n");
  }

  for(i=0; i<l; i++){
      for(j=0; j<c; j++){
          *p=aux[i][j];
          printf("%d\t", *p);
      }
  printf("\n");
  }
}

int main()
{
 int matA[L1][C1]={{1,2,3},{4,5,6},{7,8,9}};

 printf("\nMatriz da soma:\n");
 transpor_q(L1, C1, matA);
 return 0;
}



Tags :