Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ZedGe en 26 Mayo 2012, 03:58 am



Título: Problema con función de array de 2 dimensiones
Publicado por: ZedGe en 26 Mayo 2012, 03:58 am
Tengo el siguiente código programo en Devc++ y es C

Código:
#include <stdio.h>
#include <stdlib.h>
 
int posicionarBloques(int **bloques, int largo) {//Función que ordena cada dato de la fila de mayor a menor

    int i = 1, aux=0, j=0;
    
    while(j < largo){    
    while (i < 3){
          if(aux > bloques[j][i]){
             i++;      
          }
          if(aux < bloques[j][i]){
                  bloques[j][0]=  bloques[j][i];
                  bloques[j][i] = aux;
                  aux=bloques[j][0];
                  i=1;    
          }    
    }
    j++;
    }
 return **bloques;          
            
}
 
void lectura(){//Funcion que lee el TXT y lo pasa a un arreglo
    
   FILE *archivo = fopen("prueba.txt", "r");
   int medidas;
   int lectura;
   int largo;
   int bloques[30][3];
   int aux=0,aux2=0,i=0,j=0;

   if (!archivo)
      printf("\nNo Se Pudo Leer Correctamente El Archivo...");
   else{
        while(i<30){//Inicializo la matriz con 0
             while(j<3){              
                   bloques[i][j]=0;  
                   j++;          
             }
             j=0;
             i++;
        }
        while (fscanf(archivo, "%i", &lectura) == 1){ //Leo los datos y los guardo
               if (lectura > 0){
                   largo = lectura;
                   while(largo > aux){
                     while (aux2 < 3){  
                           fscanf(archivo, "%i", &medidas);
                           bloques[aux][aux2] = medidas;      
                           aux2++;  
                     }  
                     aux++;aux2=0;
                  }
              }
      }
   **bloques =  posicionarBloques(bloques, largo); //Posible error    
   fclose(archivo);
   getch();
   }
}
  
int main()
{
        lectura();
        return 0;
}





Tengo un txt con esta info

2
10 20 30
5 9 15
0



el 2 representa el largo del arreglo
las siguientes dos lineas son los datos
y el 0 es para advertir que terminan los datos

leo los datos y los guardo correctamente, pero al mandarlos a la funcion que los ordena se me cae, y creo que es por que estoy pasando mal la matriz.... como deberia pasar como parametro la matriz para trabajarla bien???


Título: Re: Problema con función de array de 2 dimensiones
Publicado por: ZedGe en 26 Mayo 2012, 18:58 pm
tenia que recibirlo como

int bloques[30][3] en la función posicionar