En este grupo En todos

Foro de Programación estructurada



¿como cambio las dos columnas de la matriz?

Olaya
Sevilla, España
Escrito por Olaya Diaz Hermoso
el 24/11/2011
Mi pregunta es la siguiente: tengo que girar la matriz 90 grados en sentido de las agujas del reloj, y yo he conseguido hacer la traspuesta pero necesitaría que se permutasen las dos columnas y no me sale :S Aqui dejo el programa y les agradecería que me dijeran que me falta o donde está el error.


#include <stdio. H>

int main() {
int i;
int j;


int matriz[2][2] = {{1,2},{3,4}};
for(i=0;i<2;i++) {
for(j=0;j<2;j++) {
printf("%d\t", matriz[i][j]);
}
printf("\n\n");
}
printf("\n");
printf("Se gira 90 grados, en sentido de las agujas del reloj, la matriz\n\n");

for(i=0;i<2;i++) {
for(j=0;j<2;j++) {

printf(" %d\t ", matriz[j][i]);
}
printf("\n\n\n");

}
printf("\n");

}



Además tendría esta duda también:

¿Como giro el dibujo 90 grados en C?
Aqui les dejo el programa, necesito que la escalera de asteríscos sea para el lado contrario pero no me sale :S. GRACIAS.

#include <stdio. H>
int main() {
int i;
int j;
for(j=1;j<=5;j++){
for(i=1;i<=j;i++){
printf("*");
}
printf("\n");
}

}
Enrique Avendaño Ardila
Licenciatura de matematicas universida...
Escrito por Enrique Avendaño Ardila
el 26/11/2011

Hola,

Sugiero los siguientes cambios

1. Para girar la matriz (de 2 filas por 2 columnas) ajustar:

For(i=0;i<2;i++)
{
for(j=2;j>0;j--) //Plantea el orden inverso que requiere para presentar el giro de 90°
{
printf(" %d\t ", matriz[j][i]);
}
printf("\n\n\n");
}

2. Tengo la impresión que lo que necesita es:

For(j=1;j<=5;j++)
{
for(i=1;i<=5;i++) //Cambiar por 5, dado que se quiere imprimir de derecha a Izquierda
{
if (5-i < j) //Control de Impresión
{
printf(" "); //Dejar los Blancos necesarios para la impresión de derecha a Izquierda
}
else
{
printf("*"); //Imprimir los astericos
}
}
printf("\n");
}