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

[SOLUCIONADO] Entrada de parámetro (int **)

Estas en el tema de Entrada de parámetro (int **) en el foro de C/C++ en Foros del Web. Hola buenas a todos,necesito un poco de ayuda por que no me aclaro con esta función. void AsignarDistancia(int **,int,int,int);No tengo muy claro el primer parámetro ...
  #1 (permalink)  
Antiguo 20/12/2014, 00:51
Avatar de jscmanuel  
Fecha de Ingreso: mayo-2014
Mensajes: 29
Antigüedad: 9 años, 11 meses
Puntos: 0
Pregunta Entrada de parámetro (int **)

Hola buenas a todos,necesito un poco de ayuda por que no me aclaro con esta función.
void AsignarDistancia(int **,int,int,int);No tengo muy claro el primer parámetro que tengo que darle.
Esto es lo que tengo, estoy modificando el código de ejemplo del problema.
Código:
#include <iostream>
using namespace std;

  char CiudadR;
   char Ciudad;
   int Valor;
   int n1,n2;
// Variable global para tabla de distancias: 
//int **tabla; 


#define NCIUDADES 5 
#define CIUDAD_A 0 
#define CIUDAD_B 1 
#define CIUDAD_C 2 
#define CIUDAD_D 3 
#define CIUDAD_E 4

 void AsignarDistancia(int **,int,int,int);
 void Inmtercambio(int &A,int &B);
 void PDatos( );
// Prototipo para  calcular la distancia entre dos ciudades: 
int Distancia(int A, int B);
 
int main() { 
   int i;
   int **tabla;
  
   // Primer subíndice de A a D 
   tabla = new int*[NCIUDADES-1]; 
   // Segundo subíndice de B a E, 
   // define 4 arrays de 4, 3, 2 y 1 elemento: 
   for(i = 0; i < NCIUDADES-1; i++) 
      tabla[i] = new int[NCIUDADES-1-i]; // 4, 3, 2, 1 
      
   for(int i = 0;i<2;i++){
           PDatos();
           }
 /*
   // Ejemplos: 
   cout << "Distancia A-D: " 
        << Distancia(CIUDAD_A, CIUDAD_D) << endl; 
   cout << "Distancia B-E: " 
        << Distancia(CIUDAD_B, CIUDAD_E) << endl; 
   cout << "Distancia D-A: " 
        << Distancia(CIUDAD_D, CIUDAD_A) << endl; 
   cout << "Distancia B-B: " 
        << Distancia(CIUDAD_B, CIUDAD_B) << endl; 
   cout << "Distancia E-D: " 
        << Distancia(CIUDAD_E, CIUDAD_D) << endl;
 */
   // Liberar memoria dinámica: 
   for(i = 0; i < NCIUDADES-1; i++) delete[] tabla[i]; 
   delete[] tabla; 
   
   system("pause");
   return 0; 
}
void PDatos(){
    //Asignacicon de datos selecionando ciudades.
   //cout<<"[A,B,C,D,E]"<<endl;
   cout<<"Dijame la cuidad de referencia "<<"[A,B,C,D,E]: ";
                 cin>>CiudadR;
                 n1 = (int)(CiudadR - 65);  //Casting a Int.
   cout<<"Dijame la Segunda ciudad  "<<"[A,B,C,D,E]: ";
                 cin>>Ciudad;
                 n2 = (int)(Ciudad - 65);  //Casting a Int.
   cout<<"A que Distancia estan: ";
                 cin>>Valor;
                AsignarDistancia(n1,n2,Valor); //aki e donde tengo el error.
     }
 
void AsignarDistancia(int **,int,int,int){
         if(n1 == n2){
           Valor = 0;
           tabla[n1][n2]= Valor;
     
     }
     tabla[n1][n2] = Valor;
     }
Haber que opináis y gracias de ante mano.

Última edición por jscmanuel; 20/12/2014 a las 05:50 Razón: Señalar duda y error
  #2 (permalink)  
Antiguo 20/12/2014, 06:31
Avatar de jscmanuel  
Fecha de Ingreso: mayo-2014
Mensajes: 29
Antigüedad: 9 años, 11 meses
Puntos: 0
Respuesta: Entrada de parámetro (int **)

Puede que lo que necesite sea una referencia al mismo objeto n1.Para pasarlo como parámetro??Voy a probar. E comprobado el código y el fallo esta en que int **tabla es una variable local de main y no global como necesito.

Última edición por jscmanuel; 20/12/2014 a las 23:53

Etiquetas: char, entrada, int
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 08:40.