Tengo un problema en C [Matriz muy basica]

Iniciado por Atchumbakar, 31 Diciembre 2016, 01:10 AM

0 Miembros y 1 Visitante están viendo este tema.

Atchumbakar

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!

engel lex

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...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Atchumbakar

#2
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

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Atchumbakar

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