Napisałem prosty program, który pobiera od użytkownika liczbę z jednostką i konwertuje to na inne jednostki. Nie wiem jak obsłużyć przypadek, kiedy użytkownik wpisuje liczbe bez jednostki. Chcę, aby program wypisywał to samo co w przypadku ostatniego else'a.
#include <cstdio>
#include <iostream>
using namespace std;
int main()
{
double liczba=0.0, liczba_cm=0.0, min=0.0, max=0.0;
string unit="";
do
{
cout<<"Wpisz nowa liczbe z jednostka cm lub cal lub st lub m: "<<endl;
cin>>liczba>>unit;
if (getchar()=='|') break;
cout<<"Wpisales wartosc: "<<liczba<<unit<<endl;
if (unit=="cm")
{
liczba_cm=liczba;
cout<<"To jest: "<<(liczba/100)<<"m"<<endl;
cout<<"To jest: "<<(liczba/2.54)<<"cal"<<endl;
cout<<"To jest: "<<(liczba/2.54/12)<<"st"<<endl;
}
else if (unit=="m")
{
cout<<"To jest: "<<(liczba*100)<<"cm"<<endl;
cout<<"To jest: "<<(liczba*100/2.54)<<"cal"<<endl;
cout<<"To jest: "<<(liczba*100/2.54/12)<<"st"<<endl;
liczba_cm=(liczba*100);
}
else if (unit=="cal")
{
cout<<"To jest: "<<(liczba*2.54)<<"cm"<<endl;
cout<<"To jest: "<<(liczba*2.54/100)<<"m"<<endl;
cout<<"To jest: "<<(liczba/12)<<"st"<<endl;
liczba_cm=(liczba*2.54);
}
else if (unit=="st")
{
cout<<"To jest: "<<(liczba*12*2.54)<<"cm"<<endl;
cout<<"To jest: "<<(liczba*12*2.54/100)<<"m"<<endl;
cout<<"To jest: "<<(liczba*12)<<"cal"<<endl;
liczba_cm=(liczba*12*2.54);
}
else
{
cout<<"Wpisales zla jednostke. Sprobuj ponownie."<<endl;
break;
}
if (liczba_cm>max)
{
max=liczba_cm;
cout<<"Byla to jak dotad najwieksza wpisana liczba."<<endl;
}
else if (liczba_cm<min)
{
min=liczba_cm;
cout<<"Byla to jak dotad najmniejsza wpisana liczba."<<endl;
}
} while (getchar()!='|');
return 0;
}