Foro de elhacker.net

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:

Código
  1. /*Crear un programa que permita inicializar una matriz de 10 números enteros, leyendo los
  2. valores por pantalla, y que posteriormente muestre dicho vector por pantalla.*/
  3.  
  4. #include <stdio.h>
  5.  
  6.  
  7.  
  8. int main (){
  9.  
  10. int c=0;
  11. int f=0;
  12. int matriz [f][c];
  13. int i,j;
  14.  
  15. printf("INTRODUZCA EL NUMERO DE FILAS: ");
  16. scanf("%i", &f);
  17. printf("INTRODUZCA EL NUMERO DE COLUMNAS: ");
  18. scanf("%i", &c);
  19.  
  20.  
  21.  
  22.  
  23. for (i=0; i<f; i++){
  24. printf("\n");
  25. for(j=0; j<c; j++){
  26. printf("[%i][%i]: ", i+1, j+1);
  27. scanf("%i", &matriz[i][j]);
  28. }
  29.  
  30.  
  31. }
  32.  
  33.  
  34.  
  35.  
  36.  
  37. for (i=0; i<f; i++){
  38. printf("\n");
  39. for(j=0; j<c; j++){
  40. printf("%i|", matriz[i][j]);
  41. }
  42.  
  43.  
  44. }
  45. }
]


No veo el problema, pero al imprimirla me sale siempre lo mismo. Os pongo un ejemplo:
Código
  1. INTRODUZCA EL NUMERO DE FILAS: 2
  2. INTRODUZCA EL NUMERO DE COLUMNAS: 2
  3.  
  4. [1][1]: 1
  5. [1][2]: 4
  6.  
  7. [2][1]: 3
  8. [2][2]: 2
  9.  
  10. 3|2|
  11. 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
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