Hej, mam problem z wyprowadzeniem wyniku w programie Dev-C++ Uczę się programowania dopiero od paru tygodni i kompletnie nie wiem jaki popełniam błąd, ale nie potrafię wyprowadzić wyniku ze wzoru. Np. próbowałąm pisać program na pole trójkąta. Na początku powinno sprawdzać czy trójkąt istnieje a tak się nie dzieje, a do tego program "nie widzi" wzoru na pole. Jeśli piszę wzór na P, a potem cin>>P; to powinno chyba wyprowadzić P ze wzoru, prawda? Tymczasem program karze samodzielnie wpisywać P. Poniżej skopiowałam ten program, kompilacja przebiegła prawidłowo. Wie ktoś jak sobie z takim czymś poradzić?
#include #include
using namespace std; int a,b,c,P; int main(int argc, char *argv[]) { cout<<"Wprowadz a\n"; cin>>a; cout<<"Wprowadz b\n"; cin>>b; cout<<"Wprowadz c\n"; cin>>c;
if(a+b<=c&&b+c<=a&&a+c<=b)cout<<"Trójkat nie istnieje"; else {cout<<"Oblicz pole trojkata\n "; P ==(a+b+c)*0,5; cin>>P; cout<< "Pole to: "; cout<< P< }
RaspPi90
P == ...; jest złym zapisem, to porównanie zwracające prawdę lub fałsz, stosowane w warunkach, tutaj stosujemy P = ...;
cin >> P; nadpisze pole trójkąta danymi podanymi z klawiatury. Do wyświetlania używamy cout << P;
W cout jako nową linię używać można zdefiniowany endl: cout << "Oblicz pole trojkata" << endl;
W kodzie rób wcięcia dla jasnego rozróżniania bloków.
0 votes Thanks 1
kosmo
Cin jest to strumień wejściowy(istream) cin >> P oznacza, że zapisujesz w P dane ze strumienia wejściowego (czyli wczytujesz do P wartość z klawaitury). Aby zmienić wartość P i ją wyświetlić wystarczy: P =(a+b+c)*0,5; cout<< "Pole to: " << P << endl;
Poprawiony cały program:
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) { int a,b,c,P; cout<<"Wprowadz a\n"; cin>>a; cout<<"Wprowadz b\n"; cin>>b; cout<<"Wprowadz c\n"; cin>>c;
if (a + b <= c && b + c <= a && a + c <= b) { cout<<"Trójkat nie istnieje"; } else { cout<<"Oblicz pole trojkata\n "; P =(a+b+c)*0,5; cout<< "Pole to: "<< P<< endl; }
cin >> P; nadpisze pole trójkąta danymi podanymi z klawiatury.
Do wyświetlania używamy cout << P;
W cout jako nową linię używać można zdefiniowany endl:
cout << "Oblicz pole trojkata" << endl;
W kodzie rób wcięcia dla jasnego rozróżniania bloków.
cin >> P oznacza, że zapisujesz w P dane ze strumienia wejściowego (czyli wczytujesz do P wartość z klawaitury). Aby zmienić wartość P i ją wyświetlić wystarczy:
P =(a+b+c)*0,5;
cout<< "Pole to: " << P << endl;
Poprawiony cały program:
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int a,b,c,P;
cout<<"Wprowadz a\n";
cin>>a;
cout<<"Wprowadz b\n";
cin>>b;
cout<<"Wprowadz c\n";
cin>>c;
if (a + b <= c
&& b + c <= a
&& a + c <= b)
{
cout<<"Trójkat nie istnieje";
}
else
{
cout<<"Oblicz pole trojkata\n ";
P =(a+b+c)*0,5;
cout<< "Pole to: "<< P<< endl;
}