Zmienne same przyjmują wartości po rozpoczęciu programu i nie da się korzystać z cin
Ostatnio zmodyfikowano 2014-06-14 21:58
laurento Temat założony przez niniejszego użytkownika |
Zmienne same przyjmują wartości po rozpoczęciu programu i nie da się korzystać z cin » 2014-06-14 21:36:15 Chciałbym napisać program, który liczy pole trójkąta za pomocą wzoru Herona. Na początku działania chcę żeby program spytał jakie maja być długości boków i sprawdził, czy z tych podanych da się zbudować trójkąt. #include<iostream> #include<cmath> using namespace std; int main() { float a, b, c; cout << "Podaj a: " << a << endl; cin >> a; cout << "Podaj b: " << b << endl; cin >> b; cout << "Podaj c: " << c << endl; cin >> c; if( a + b < c ) { cout << "To nie jest trojkat." << endl; return 0; } if( a + c < b ) { cout << "To nie jest trojkat." << endl; return 0; } if( b + c < a ) { cout << "To nie jest trojkat." << endl; return 0; } float p, S; p =( 1 / 2 ) *( a + b + c ); S = sqrt( p *( p - a ) *( p - b ) *( p - c ) ); cout << "S = " << S << endl; getchar(); getchar(); return 0; }
Program się kompiluje, natomiast zamiast wyświetlić "Podaj a: ", wyświetla "Podaj a: 0" - tak samo dla b i c. Po wprowadzeniu jakichś wartości dla a, b i c, wyświetlone zostaje "S = -0". W którym miejscu mojego kodu może być problem? |
|
SeaMonster131 |
» 2014-06-14 21:51:22 Wyświetla w ten sposób, bo tak to napisałeś: cout << "Podaj a: " << a << endl; Co do drugiego błędu, zamiast ( 1 / 2 ) spróbuj dać 0.5 lub 1.0f / 2.0f . |
|
laurento Temat założony przez niniejszego użytkownika |
» 2014-06-14 21:58:48 Dzięki - wszystko teraz działa :) |
|
« 1 » |