Olá, é possível rotacionar uma matriz quadrada em C, uma posição pro lado?
Deve ser possível rotacionar quantas vezes for necessário…
Exemplo nas fotos:
Sim, é possível.
Sabe me dizer como posso fazer isso?
Primeira coisa, pega papel e lápis. Desenhe a primeira matriz. Para cada elemento, coloque a posição dele, ou seja, na primeira linha vc tem a
na linha 0, coluna 0, b
na linha 0, coluna 1, c
na linha 0 coluna 2 e assim por diante. Faça o mesmo para a segunda matriz.
Você perceberá que o a
que está na linha 0, coluna 0 da primeira matriz foi para a coluna 1 da mesma linha. Veja o desenho abaixo (que é o que eu seu professor espera que vc pense).
As flechas verdes indicam a movimentação (o b
do centro não se mexe). O a
destacado em roxo é uma das 8 movimentações que vc precisará fazer.
Agora, basta traduzir isso para a linguagem C. Comece a fazer e se enroscar, mostre seu código e traga dúvidas pontuais. Ninguém vai fazer para vc.
Olá tentei fazer isso em uma matriz 7x7. Porém tentei de varias formas, esta dando erro, algumas linhas/colunas não se andam, ou simplesmente some o caractere, ou o caractere é apenas duplicado…
fiz um for assim pra ir girando:
for(i = 0; i < 7; i++){
for(j = 0; j < 7; j++){
matriz2[i][j] = matriz[i][j];
}
}
for(i = 0; i < 7; i++){
for(j = 0; j < 7; j++){
if(i == 6){
matriz2[i][j+1] = matriz[i][j];
}
if(j == 0){
matriz2[i+1][j] = matriz[i][j];
}
if(i == 0){
matriz2[i][j-1] = matriz[i][j];
}
if(j == 6){
matriz2[i-1][j] = matriz[i][j];
}
}
}