Zdravím, potřeboval bych pomoct nastavit cin.fail(). Mám za cíl vytvořit program, který po zadání tří stran vypočítá obsah trojúhelníku. Potřebuji do něj dostat podmínky za kterých funkce if proběhne. Vše jde celkem v pořádku, akorát pokud za třetí číslo dosadím hodnotu typu 5,6 místo 5.6 tak mi to i přesto vypočítá obsah trojúhleníku s tím, že bere 5,6 jako 5. Kde je chyba? Pokud to stejné udělám u prvního nebo druhého čísla program proběhne správně a vypíše hlášku...Jen u třetího čísla to nějak ignoruje...
tady je zápis programu:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double a,b,c,s,S;
cout << "Zadejte strany trojuhelniku\n" <<endl;
cin>> a >>b >>c;
if (a<=0||b<=0||c<=0||(a+b<c)||(a+c<b)||(b+c<a)||cin.fail())
{
cout << "Nejedna se o trojuhelnik."<<endl;
return 1;
}
else
s=(a+b+c)/2;
S= sqrt(s*(s-a)*(s-b)*(s-c));
cout << "Obsah trojuhelniku je: "<< S;
return 0;
}