• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z funckją if i endl;

Fiszki IT
Fiszki IT
0 głosów
100 wizyt
pytanie zadane 26 maja 2019 w C i C++ przez Fr3me Nowicjusz (120 p.)

Witam.
Z góry przepraszam za chaotyczność i ewentualne błędy w kodzie ponieważ jest to drugi raz w życiu, gdy coś tam sobie klepię w codeblocksie.

#include <iostream>

using namespace std;

float x,y,z,a,b,c,k,l,m,n,o;

int main()
{
    cout << "Kalkulator oplacalnoœci alkoholu." << endl;

   cout << "Uzupelnij wymagane informacje." <<endl;

   cout << "Podaj posiadany budzet w zl:" <<endl;
   cin >> k;

   cout << "Wprowadz dane pierwszego napoju." <<endl;

   cout << "Cena:" <<endl;
   cin >> x;
   cout << "Zawartosc alkoholu w napoju wyrazona w %:" <<endl;
   cin >> y;
   cout << "Ilosc napoju wyrazona w ml:" <<endl;
   cin >> z >>endl;

   cout << "Wprowadz dane drugiego napoju." <<endl;

   cout << "Cena:" <<endl;
   cin >> a;
   cout << "Zawartosc alkoholu w napoju wyrazona w %:" <<endl;
   cin >> b;
   cout << "Ilosc napoju wyrazona w ml:" <<endl;
   cin >> c;

   l = (z*y)/100*0.8;
   m = (b*c)/100*0.8;
   n = k/x;
   o = k/a;

   if(l>m){
   cout << "Bardziej oplacalny jest napoj pierwszy poniewaz w mozliwej ilosci jego zakupienia jest wiecej gram alkoholu" <<endl;

   cout << o*m <<endl;
   }
   if(l<m){
   cout << "Bardziej oplacalny jest napoj drugi poniewaz w mozliwej ilosci jego zakupienia jest wiecej gram alkoholu" <<endl;

   cout << n*l <<endl;
   }
   return 0;



}


Mój problem polega na tym, że robię coś źle z funkcją if. Wyświetlane są oba warianty ewentualnego wyniku zamiast tylko jednego oraz problem z endl;. Pomiędzy "Wprowadź dane drugiego napoju", a "Cena:" powinna być linijka odstępu tak jak przy wprowadzaniu danych pierwszego napoju, ale jej nie ma. Oba zdania nieestetycznie stykają się ze sobą w jednej linii.
Nie musi on liczyć wszystkiego zgodnie z prawdą bo to tylko taki domowy eksperyment, ale zależy mi na tym, aby działało to tak z jakim zamiarem to napisałem.

komentarz 26 maja 2019 przez Fr3me Nowicjusz (120 p.)
PS.
Zamiast drugiego "if" próbowałem też użyć "else". Bezskutecznie..

1 odpowiedź

+1 głos
odpowiedź 26 maja 2019 przez jpacanowski VIP (102,440 p.)
edycja 26 maja 2019 przez jpacanowski
komentarz 26 maja 2019 przez Fr3me Nowicjusz (120 p.)
Bardzo dziękuję :)

Dodałem "precision" do list float i zmieniłem porównanie na:
 

precision = 0;

   if((l-precision) >m)

   {
   cout << "Bardziej oplacalny jest napoj pierwszy poniewaz w mozliwej ilosci jego zakupienia jest wiecej gram alkoholu" <<endl;

   cout << o*m <<endl;
   }
   else

    {
   cout << "Bardziej oplacalny jest napoj drugi poniewaz w mozliwej ilosci jego zakupienia jest wiecej gram alkoholu" <<endl;

   cout << n*l <<endl;
   }

Teraz już wszystko działa.

Podobne pytania

0 głosów
1 odpowiedź 52 wizyt
pytanie zadane 16 czerwca w C# przez Bartek12 Mądrala (5,430 p.)
0 głosów
1 odpowiedź 78 wizyt
pytanie zadane 21 listopada 2018 w C i C++ przez GFSidonis Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 576 wizyt
pytanie zadane 17 grudnia 2015 w C i C++ przez Arowsky Początkujący (260 p.)
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

84,751 zapytań

133,554 odpowiedzi

295,976 komentarzy

56,010 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...