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;
}