elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Duda sobre matrices en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda sobre matrices en C  (Leído 4,897 veces)
ildarion

Desconectado Desconectado

Mensajes: 24



Ver Perfil
Duda sobre matrices en C
« en: 21 Septiembre 2010, 22:23 pm »

Hola buenas.
Hace poco que me inicié en la programación y me he topado con una duda.
Si yo por ejemplo quiero hacer un programa que diga que el usuario ingrese dos numeros, uno de las filas de la matriz y otro de las columnas, y luego lo quiero guardar en un array, como lo hago?
Algo como crear un array estilo float matriz1 [columnas] [filas]
y que columnas y filas fueran variables previamente creadas y que cuando el usuario introduzca los datos, se cree el array con los datos de las variables.
Pero si no mal recuerdo, me parece haber leido que los arrays se crean cuando se compila el programa y no se pueden alterar no?
¿Alguien me puede solucionar esto o linkearme algun ejemplo que hubiera en otro post?
Gracias por vuestro tiempo^^!


En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Duda sobre matrices en C
« Respuesta #1 en: 21 Septiembre 2010, 23:03 pm »

Veamos... en C, cuando declaras matrices (por hablar de lo que preguntas) debes hacerlo con un tamaño fijo. Para poder crear una matriz con datos introducidos por el usuario debes recurrir a memoria dinámica(malloc, free)


En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: Duda sobre matrices en C
« Respuesta #2 en: 22 Septiembre 2010, 21:48 pm »

Aquí tienes un pequeño ejemplo de lo que te comenta Akal
Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main(){
  6. float ** tabla;
  7. int numeroFilas = 0;
  8. int numeroColumnas = 0;
  9.  
  10. do{
  11. printf("\nEscribe el numero de filas de la tabla  ");
  12. fscanf(stdin,"%d", &numeroFilas);
  13.  
  14. printf("\nEscribe el numero de columnas de la tabla  ");
  15. fscanf(stdin,"%d", &numeroColumnas);
  16. }while (numeroFilas <= 0 && numeroColumnas <= 0);
  17.  
  18. // primero reservamos memoria para las filas
  19. tabla = (float**) malloc(numeroFilas * sizeof(float));
  20.  
  21. if (tabla == NULL){
  22. //no se pudo reservar memoria
  23. return -1;
  24. }
  25.  
  26. int i = 0;
  27.  
  28. for ( ; i < numeroFilas ; i++){
  29. tabla[i] = (float*) malloc(numeroColumnas * sizeof(float));
  30. *tabla[i] = (i + 1) * 2 ; // la llenamos con lo que sea
  31. }
  32.  
  33. //ahora solo nos queda mostrar la tabla
  34. for ( i = 0 ; i < numeroFilas ; i++){
  35. printf("\nFila %d valor=%.0f ", i , *tabla[i]);
  36. }
  37.  
  38.  
  39. }
  40.  
En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
sinsombra_666

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: Duda sobre matrices en C
« Respuesta #3 en: 25 Septiembre 2010, 18:21 pm »

Citar
Veamos... en C, cuando declaras matrices (por hablar de lo que preguntas) debes hacerlo con un tamaño fijo. Para poder crear una matriz con datos introducidos por el usuario debes recurrir a memoria dinámica(malloc, free

ummm estas seguro ?¿

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int fila,columna=0;
  5.  
  6.  
  7. main()
  8. {
  9.  
  10.  int matriz[3][3];
  11.  
  12.  
  13. for(fila=0; fila <3; fila++){
  14.  
  15.  
  16. for(columna=0; columna<3; columna++){
  17.  
  18. printf("Datos a alamacenar %i %i:",fila,columna);              
  19. scanf("%d",&matriz[fila][columna]);              
  20.  
  21.  
  22. }                
  23.  
  24.  
  25. }
  26.  
  27.  
  28. printf("dato fila 0, columna 0 es %d:", matriz[0][0]);
  29.  
  30. printf("dato fila 0, columna 1 es %d:", matriz[0][1]);
  31.  
  32. // etc etc...
  33.  
  34.  
  35. }
  36.  
« Última modificación: 25 Septiembre 2010, 18:43 pm por sinsombra_666 » En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Duda sobre matrices en C
« Respuesta #4 en: 25 Septiembre 2010, 18:33 pm »

Hola, así sería como ildarion dice

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.  int fila, columna;
  7.  
  8.  printf("Introduce el numero de filas:");
  9.  scanf("%d", &fila);
  10.  
  11.  printf("Introduce el numero de columnas:");
  12.  scanf("%d", &columna);
  13.  
  14.  int matriz[fila][columna];
  15.  
  16.  for(fila=0; fila <3; fila++){
  17.    for(columna=0; columna<3; columna++){
  18.      printf("Datos a alamacenar en la pos. %i , %i:",fila,columna);
  19.      scanf("%d",&matriz[fila][columna]);
  20.      }
  21.    }
  22.  
  23.  printf("dato fila 0, columna 0 es:", matriz[0][0]);
  24.  printf("dato fila 0, columna 0 es:", matriz[0][1]);
  25.  
  26.  // etc etc...
  27.  
  28.  getch();
  29.  return 0;
  30. }
  31.  

Saludos
En línea

Breakbeat como forma de vida
sinsombra_666

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: Duda sobre matrices en C
« Respuesta #5 en: 25 Septiembre 2010, 18:47 pm »

ummm lo ordenastes y le pusistes a elegir la fila y la columna pero mira fijate que ahora me di cuenta de que el code esta mal

es un error sin importancia pero bueno

Código
  1. printf("dato fila 0, columna 0 es %d:", matriz[0][0]);
  2.  
  3. printf("dato fila 0, columna 1 es %d:", matriz[0][1]);
  4.  

me olvide de ponerle a printf el tipo de dato que deve de mostrar en panatalla juas  :P
« Última modificación: 25 Septiembre 2010, 18:51 pm por sinsombra_666 » En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Duda sobre matrices en C
« Respuesta #6 en: 25 Septiembre 2010, 18:57 pm »

Citar
Veamos... en C, cuando declaras matrices (por hablar de lo que preguntas) debes hacerlo con un tamaño fijo. Para poder crear una matriz con datos introducidos por el usuario debes recurrir a memoria dinámica(malloc, free

ummm estas seguro ?¿


Ese datos quedó un tanto confuso, me refería a que el tamaño de la matriz fuese un dato introducido por el usuario, no su contenido.

EDIT: pero si, parece ser que se puede sin recurrir a memoria dinámica. No había caido en declararla a mitad código en vez de al principio.
« Última modificación: 25 Septiembre 2010, 19:14 pm por Akai » En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Duda sobre matrices en C
« Respuesta #7 en: 25 Septiembre 2010, 20:29 pm »

ummm lo ordenastes y le pusistes a elegir la fila y la columna pero mira fijate que ahora me di cuenta de que el code esta mal

es un error sin importancia pero bueno

Código
  1. printf("dato fila 0, columna 0 es %d:", matriz[0][0]);
  2.  
  3. printf("dato fila 0, columna 1 es %d:", matriz[0][1]);
  4.  

me olvide de ponerle a printf el tipo de dato que deve de mostrar en panatalla juas  :P

Es verdad y yo también caí jajajajaja
En línea

Breakbeat como forma de vida
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre matrices y los enum
Programación C/C++
jorgefer92 1 2,907 Último mensaje 26 Enero 2011, 14:06 pm
por eustakio12345654321
Consulta sobre matrices
.NET (C#, VB.NET, ASP)
serenity.uy 3 3,438 Último mensaje 2 Julio 2011, 23:45 pm
por serenity.uy
duda matrices c++
Programación C/C++
indict 4 2,348 Último mensaje 18 Abril 2013, 18:02 pm
por indict
[DUDA] Matrices
Programación C/C++
kayron8 9 3,811 Último mensaje 13 Marzo 2014, 12:52 pm
por Gh057
PRODCUCTO DE DOS MATRICES DE 3 X 3 : DUDA
Programación C/C++
snoopty 2 3,112 Último mensaje 7 Diciembre 2021, 08:40 am
por snoopty
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines