Tak na szybko co wyłapałem:
float droga[2];
float predkosc[2];
a potem
cin >>droga[2];
cin >>predkosc[2];
Ostatnim elementem tej tablicy jest 1, nie możesz odwoływać się do 2.
To samo robisz tutaj:
for(x=0;x<3;x++){
float etap[2];
etap[x]=licz_czas(d,droga[x],predkosc[x]);
wynik+=etap[x];
cout<<wynik<<"--"<<etap[x]<<"//////////////";
}
Pętla wykona się 3 razy, w ostatnim jej obiegu x będzie równe 2, a wew petli znowu odwolujesz sie do elementu numer 2 (x=2). Ponadto tworzysz tablicę etap[2] bez sensu, po pierwsze jest to tylko zmienna pomocnicza, aby przypisać jej wynik więc możesz używać jednej zmiennej etap dla każdego obiegu pętli (bo ta tablica i tak niszczy się i tworzy od nowa przy każdym obiegu pętli więc zapisana tam wartość przepada przy każdym obiegu pętli). Zatem
for(x=0;x<3;x++){
float etap;
etap=licz_czas(d,droga[x],predkosc[x]);
wynik+=etap;
cout<<wynik<<"--"<<etap<<"//////////////";
}
Kolejny błąd to:
float licz_czas(float d,float czesc_drogi,float p)
{
float etap;
etap=(czesc_drogi*d)/p;
return etap;
}
No i tu o ile funkcja robi to co założyłeś to nie jest to stricte błąd, ale jest to nielogiczne, żeby tworzyć tutaj zmienną tylko po to aby ją zwrócić. Można zwrócić sam wynik.
float licz_czas(float d,float czesc_drogi,float p)
return (czesc_drogi*d)/p;