Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zmienne same przyjmują wartości po rozpoczęciu programu i nie da się korzystać z cin

Ostatnio zmodyfikowano 2014-06-14 21:58
Autor Wiadomość
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.

C/C++
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    // Program liczy pole trojkata na podstawie wzor Herona, sprawdzajac najpierw czy z podanych dlugosci odcinkow da sie utworzyc trojkat
    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?
P-112083
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
.
P-112086
laurento
Temat założony przez niniejszego użytkownika
» 2014-06-14 21:58:48
Dzięki - wszystko teraz działa :)
P-112087
« 1 »
  Strona 1 z 1