Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: freddy91 en 10 de Enero 2017, 21:49

Título: Introducir matriz por teclado y rotar 90 grados con punteros C lenguajeC
Publicado por: freddy91 en 10 de Enero 2017, 21:49
Hola, estoy haciendo un ejercicio y no sé que estoy haciendo mal. El ejercicio trata de que tienes que introducir una matriz por teclado y luego rotarla 90º a la derecha, pero internamente hay que utilizar una segunda matriz de punteros a enteros y hay que crear un algoritmo para rotar la primera matriz sobre esta segunda, pero en la segunda matriz se deberá cargar no el valor del elemento de la primera matriz, sino el puntero a su posicion.

Gracias de antemano

 
Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#define FIL 7
#define COL 7
#define MAX 50

int main(int argc, char *argv[]) {

int matriz[FIL][COL]={0};
int *matriz2[FIL][COL]={NULL};
int fil1=0,col1=0;
int i=0,j=0,k=0,w=0;



do {
printf("Introduzca la dimension: ");
scanf("%d",&fil1);
}while(fil1<=0 || fil1>FIL);

col1=fil1;

for(i=0;i<fil1;i++){
for(j=0;j<col1;j++){
do{
printf("Introduzca el elemento [%d %d]: ",i+1,j+1);
scanf("%d",&matriz[i][j]);
}while(matriz[i][j]<=0 || matriz[i][j]>MAX);
}
}

k=0;
w=0;

for(j=0;j<fil1;j++){
    for(i=fil1-1;i>=0;i--){
matriz2[k][w]=&matriz[i][j];
w++;

}
k++;
w=0;
}

for(i=0;i<fil1;i++){
for(j=0;j<col1;j++){
printf("%d ",matriz[i][j]);
}
printf("\n");
}

for(i=0;i<fil1;i++){
for(j=0;j<col1;j++){
printf("%d ",*matriz2[i][j]);
}
printf("\n");
}

return 0;
}


Edit: Ya lo arreglé, me faltaba poner

Código: [Seleccionar]
printf("%d ",*matriz2[i][j]);
Se me olvidó el *

Saludos