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

array de caracteres

Estas en el tema de array de caracteres en el foro de C/C++ en Foros del Web. Se trata de un programa en que entramos dos poblaciones y nos permite calcular la distancia que hay entre ambas. He utilizado un array unidimensional ...
  #1 (permalink)  
Antiguo 09/09/2008, 08:26
 
Fecha de Ingreso: septiembre-2008
Mensajes: 22
Antigüedad: 15 años, 7 meses
Puntos: 0
array de caracteres

Se trata de un programa en que entramos dos poblaciones y nos permite calcular la distancia que hay entre ambas. He utilizado un array unidimensional para guardar las poblaciones y un array bidimensional para guardar las distancias entre poblaciones.

Me surgen problemas al querer asignar a pob1[4] las palabras BCN, MDR... escritas por el usuario. Se bloquea. He usado cin.getline(pob1, 4) pero no da resultado. ¿Cómo podría solucionarlo?

Gracias.




#include <iostream.h>
#include <stdio.h>
#include <math.h>
#include <ctype.h>
#include <cstring>

const int BCN=0, MDR=1, ZGZ=2, VAL=3, SSB=4, SEV=5, HUS=6;


int main (void)
{

char pob1[4];
char pob2[4];
int i, j;
int poblaciones[]={BCN, MDR, ZGZ, VAL, SSB, SEV, HUS};

int distancia[7][7]={
{0,621,296,349,529,1046,274},
{621,0,325,352,469,538,397},
{296,325,0,326,268,863,72},
{349,352,326,0,594,697,398},
{529,469,268,594,0,1007,255},
{1046,538,863,697,1007,0,935},
{274,397,72,398,255,935,0}
};

cout << "introduzca la primera poblacion (BCN, MDR, ZGZ, VAL, SSB, SEV, HUS)" << endl;
cin.getline(pob1,4);
cout << "introduzca la segunda poblacion (BCN, MDR, ZGZ, VAL, SSB, SEV, HUS) " << endl;
cin.getline (pob2,4);


if(pob1[0]=='B') i=poblaciones[0];
if(pob1[0]=='M') i=poblaciones[1];
if(pob1[0]=='Z') i=poblaciones[2];
if(pob1[0]=='V') i=poblaciones[3];
if(pob1[1]=='S') i=poblaciones[4];
if(pob1[1]=='E') i=poblaciones[5];
if(pob1[0]=='H')i=poblaciones[6];

if(pob2[0]=='B') j=poblaciones[0];
if(pob2[0]=='M') j=poblaciones[1];
if(pob2[0]=='Z') j=poblaciones[2];
if(pob2[0]=='V') j=poblaciones[3];
if(pob2[1]=='S') j=poblaciones[4];
if(pob2[1]=='E') j=poblaciones[5];
if(pob2[0]=='H')j=poblaciones[6];


cout << distancia[i][j]<< endl;
}
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 16:39.