Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Atchumbakar en 31 Diciembre 2016, 01:10 AM

Título: Tengo un problema en C [Matriz muy basica]
Publicado por: Atchumbakar en 31 Diciembre 2016, 01:10 AM
Saludos, soy Atchumbakar y estoy empezando en programacion en C. El caso es que quiero crear  una matriz e imprimirla, de proporciones cualesquiera. Mi codigo es este:

/*Crear un programa que permita inicializar una matriz de 10 números enteros, leyendo los
valores por pantalla, y que posteriormente muestre dicho vector por pantalla.*/

#include <stdio.h>



int main (){

int c=0;
int f=0;
int matriz [f][c];
int i,j;

printf("INTRODUZCA EL NUMERO DE FILAS: ");
scanf("%i", &f);
printf("INTRODUZCA EL NUMERO DE COLUMNAS: ");
scanf("%i", &c);




for (i=0; i<f; i++){
printf("\n");
for(j=0; j<c; j++){
printf("[%i][%i]: ", i+1, j+1);
scanf("%i", &matriz[i][j]);
}


}





for (i=0; i<f; i++){
printf("\n");
for(j=0; j<c; j++){
printf("%i|", matriz[i][j]);
}


}
}
]


No veo el problema, pero al imprimirla me sale siempre lo mismo. Os pongo un ejemplo:
INTRODUZCA EL NUMERO DE FILAS: 2
INTRODUZCA EL NUMERO DE COLUMNAS: 2

[1][1]: 1
[1][2]: 4

[2][1]: 3
[2][2]: 2

3|2|
3|2| <- Esto es lo que imprime.




Si alguien meecha una mano, os estaré agradecido. Saludos y felicidades por el foro!
Título: Re: Tengo un problema en C [Matriz muy basica]
Publicado por: engel lex en 31 Diciembre 2016, 01:29 AM
te explico... parece que crees que matriz [f][c] se cmodificarán si cambian f y c, pero no es así...


en C las matrices son creadas de un tamaño fijo, en este caso como f y c son 0, se crea una matriz de 0 de largo por 0 de alto...

luego pides la cantidad de filas y columnas, pero en ningún momento le indicas a la matriz que debe cambiar...

lo normal es que crearas la matriz despues de saber cuantas filas y columnas tiene...
Título: Re: Tengo un problema en C [Matriz muy basica]
Publicado por: Atchumbakar en 31 Diciembre 2016, 01:35 AM
Muchas gracias, de eso no tenia ni idea.

Voy a ambiarlo y pruebo, aunque la matriz se genera  con los mismos tamaños que pongo

Funciona, mil gracias.

Error de novato, tenia entendido que cada vez que creas una variable, lo mejor es inicializarlas a 0 u otro valor fijo y luego cambiarlas.

Un saludo!


No hagas doble post
Título: Re: Tengo un problema en C [Matriz muy basica]
Publicado por: engel lex en 31 Diciembre 2016, 01:42 AM
eso no está mal... el problema es crearlas erradamente... las matrices son fijas y el valor con el que se crearon se quedan hasta que realojes la memoria
Título: Re: Tengo un problema en C [Matriz muy basica]
Publicado por: Atchumbakar en 31 Diciembre 2016, 01:46 AM
Cita de: engel lex en 31 Diciembre 2016, 01:42 AM
eso no está mal... el problema es crearlas erradamente... las matrices son fijas y el valor con el que se crearon se quedan hasta que realojes la memoria

Gracias. Llevo poco tiempo, y de ese tiempo, hasta que empecé con las variables... XD

Y perdon por el doble post