1
Aprender a programar desde cero / Introducir matriz por teclado y rotar 90 grados con punteros C lenguajeC
« 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
Edit: Ya lo arreglé, me faltaba poner
Se me olvidó el *
Saludos
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