Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema con arreglo multidimensional

Estas en el tema de Problema con arreglo multidimensional en el foro de C/C++ en Foros del Web. Buenas noches!!!!!!!!!!!!! Agradeceré la ayuda en el siguiente asunto. Estoy utilizando un arreglo multidimensional para la solución de acuaciones lineales por el método de Gauss-Jordan. ...
  #1 (permalink)  
Antiguo 23/06/2011, 19:55
 
Fecha de Ingreso: mayo-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 0
Problema con arreglo multidimensional

Buenas noches!!!!!!!!!!!!!

Agradeceré la ayuda en el siguiente asunto. Estoy utilizando un arreglo multidimensional para la solución de acuaciones lineales por el método de Gauss-Jordan. Todo iba bien mientras la matriz ya estaba definida desde el principio como una matriz de 3 por 4. Sin embargo ahora quiero que el programa solicite al usuario de que tamaño quiere la matriz no que ya este definida. Posteo el codigo que tengo, lo estoy manejando con Code blocks y no me arroja ningun error o advertencia, pero cuando termino de introducir los valores de la posicion [03] y esperando que lo siguiente fuera [10][11][12]y [13] como creo que deberia ser, me sale [-40][-30] y de ahi se traba el programa, bueno se cierra.

Mi pregunta mas urgente es ¿Como se hace para meter datos a una matriz que no este predeterminada previamente sino elegida por el usuario?

Gracias de antemano!!!!!!!!!!!!!!!!!!!

Código C++:
Ver original
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<math.h>
  4. int main()
  5. {
  6.      float c[1][1],d,p;
  7.     int i=0,j=0,k,m,n;
  8.  
  9.   printf ("Ingresa la cantidad de renglones de la matriz\n");
  10.   scanf  ("%f",&m);
  11.   printf ("Ingresa la cantidad de columnas de la matriz\n");
  12.   scanf  ("%f",&n);
  13.     c[1][1]=c[m][n];
  14.     for(i=0;i<m;i++){
  15.     for(j=0;j<n;j++)
  16.     {
  17.                     printf("coeficiente de la ecuacion %d variable %d",i,j);
  18.                     scanf("%f",&c[i][j]);}}
  19.                     for(i=0;i<m;i++){
  20.                                       d=c[i][i];
  21.                                       for(k=0;k<n;k++)
  22.                                       c[i][k]=c[i][k]/d;
  23.                                       for(j=0;j<m;j++){
  24.                                                        if(i!=j){
  25.                                                                 p=(-1)*c[j][i];
  26.                                                                 for(k=0;k<n;k++)
  27.                                                                 c[j][k]=c[j][k]+p*c[i][k];
  28.                                                                 }}}
  29.                                                                 for(i=0;i<m;i++)
  30.                                                                 printf("     %f",c[i][m]);
  31.                                                                                      getch();
  32.                                                                 return 0;
  33.                                                                 }
  #2 (permalink)  
Antiguo 23/06/2011, 20:24
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Problema con arreglo multidimensional

No se de donde aprendiste ese metodo...pero esta completamente mal....
Lo que tienes que hacer es usar memoria dinamica. Esta se reserva usando la funcion malloc. Basicamente lo que hace reservar la parte de la memoria con longitud que vos establescas, y te devuelve un puntero al inicio de esa memoria.

Mas o menos lo que deberias hacer es primero reservar memoria para alojar m punteros del tipo float. Luego para cada uno de esos punteros debes reservar memoria para n float. El codigo es algo asi:

Código C:
Ver original
  1. floar ** c;
  2. c = (float * *) malloc (m * sizeof(float *))
  3. for (i=0;i<m;i++) c[i] = (float *) malloc (n * sizeof(float))

Luego deberias usar free para liberar la memoria. Pero creo que deberias entender esto primero.
  #3 (permalink)  
Antiguo 23/06/2011, 20:56
 
Fecha de Ingreso: mayo-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Problema con arreglo multidimensional

Hola, gracias, leyendo sobre lo que me aconsejas, aprendiendo C por mi cuenta por eso tantas barbaridades y con mucho que aprender aun.

Saludos!!!!!!!!!!!!

Etiquetas: multidimensional, arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:56.