Matriz Rotacionar em 90

Olá galera estou tentando rotacionar uma matriz em 90º mais não estou conseguindo alguém pode me ajudar?
Exemplo

1 2 3     e deverá apresenta assim:                   7 4 1
4 5 6                                                 8 5 2
7 8 9                                                 9 6 3
#include <stdio.h>
main()
{
  int M[3][3],i,j;
  for(i=0;i<3;i++){
  	for(j=0;j<3;j++){
  	  printf("\nDigite a Matriz[%d][%d]: ",i,j); scanf("%d",&M[i][j]);
	}
  }
  system("cls");
  for(i=0;i<3;i++){
  	for(j=0;j<3;j++){
  	  printf("%d\t",M[i][j]);
}
printf("\n");
  }
 printf("\n\nA MATRIZ GIRA 90\n");

for(j = 2; j >= 0; j--)       
{
for(i = 0; i < 3; i++)
    {
    printf("%d      ", M[i][j]);
    }
    printf("%c", 10);
} 
}

E aí, @Reset. Beleza?

Vamos tratar de conceitos nessa resposta, e conceitos independem de linguagem de programação. Rotacionar (visualmente) significa que você trocará algumas posiçoes na sua matriz. O “normal” dela é:

| 0,0 | 0,1 | 0,2 |
| 1,0 | 1,1 | 1,2 |
| 2,0 | 2,1 | 2,2 |

E o rotacionado seria:

| 2,0 | 1,0 | 0,0 |
| 2,1 | 1,1 | 0,1 |
| 2,2 | 1,2 | 0,2 |

Você conseguiu perceber um padrão?

Tudo que você precisa fazer é copiar sua matriz para uma nova, ajeitando seu laço de repetição encadeado na hora de posicionar os elementos dentro da matriz.

1 curtida