struct Miasto
{
const char *hotel;
int km;
};
Miasto Barcelona[]=
{
{"Ibis Poznan ", 332},
{"Ibis Berlin ", 501},
{"Apart Magdeburg ", 716},
{"Rose Norymberga ", 996},
{"Hotel Heildelberg ", 1187},
{"Hotel Karlsruhe ", 1236},
{"Apart Belfort ", 1449},
{"Hotel Cahlon-sur-Saone ", 1664},
{"Ibis Lyon ", 1789},
{"Amber Valence ", 1889},
{"Apart Avignon ", 2013},
{"Hotel Montpellier ", 2089},
{"Hotel Barcelona ", 2422},
};
...
for(int b=0;b<13;b++)
{
if(Barcelona[b].km <= limit && Barcelona[b+1].km >limit || Barcelona[b].km==2422)
{
cout<<liczba<<'\t'<<Barcelona[b].hotel<<'\t'<<Barcelona[b].km - odleglosc<<'\t'<<Barcelona[b].km<<endl;
liczba++;
odleglosc=Barcelona[b].km+odleglosc;
}
}
Program wylicza najkrotsza drogę do Barcelony, limit oczywiscie wczesniej podany, odleglosc poczatkowa = 0. Moja pętla działa tylko dla pierwszego i ostatniego hotelu np.
limit = 550
1 Ibis Berlin 501 501
2 Hotel Barcelona 1927 2422
Po chwili zobaczyłem błąd, lecz dalej nie działa:
int c=0;
for(int b=0;b<13;b++)
{
if(Barcelona[b].km -c <= limit && Barcelona[b+1].km -c >limit || Barcelona[b].km==2422)
{
cout<<liczba<<'\t'<<Barcelona[b].hotel<<'\t'<<Barcelona[b].km - odleglosc<<'\t'<<Barcelona[b].km<<endl;
liczba++;
odleglosc=Barcelona[b].km+odleglosc;
c=Barcelona[b].km;
}
}