[C++] Bardzo prosty program z funkcja "if" co robie źle?

Witam, męczę się już od wczoraj z programem który ma pobierać liczbę z wejścia porównywać ją i dawać odpowiednie komunikaty.

liczba mniejsza od 5 - "za mało!, liczba większa od 10 - “za dużo!”, reszta - “bingo!”

Proszę o pomoc co robię źle, i jak zmusić ten program do poprawnej pracy?

#include 

using namespace std;

int main(){

int liczba;

    cout <<"Podaj liczbe: ";

    cin >> liczba;

    if (liczba<5) cout << "Za malo!";


    if (liczba>10) cout <<"Za dużo!";

    if (liczba>=10&&liczba<=5) cout <<"Bingo!";


    system("pause");

}

if (liczba>=10&&liczba<=5) cout <<“Bingo!”;

to zastap moze:

if(liczba == 5)cout << “blabla”;

EDIT:

Problem już rozwiazałem, po prostu miałem złe znaki równości, poprawna linia powinna wyglądać tak:

if (liczba<=10 && liczba>=5) cout <<"Bingo!";

albo tak:

if (liczba<5) cout << “Za malo!”;

else if (liczba>10) cout <<“Za dużo!”;

else cout <<“Bingo!”;

bardziej profesjonalnie :wink:

pozdrawiam

Dzieki wszystkim za pomoc, teraz mam kolejny program i znowu problem z funkcja IF

#include 

using namespace std;

   int main ()

   {

       cout << " ***Program oblicza pola powierzchni figur plaskich*** \n\n";

       char x;

       cout << " Wybierz dla jakiej figury chcesz obliczyc pole i kliknij Enter:\n 't' - trojkat\n 'k' - kwadrat\n 'p' - prostokat\n ";

       cin >> x;

       cout << "\n\n";

       if (x= "t")

          {

          float h,a,p;

          cout <<"Podaj podstawe trojkata: ";

          cin >> a;

          cout <<"\nPodaj wysokosc trojkata: ";

          cin >> h;

          p=0.5*a*h;

          cout <<"Pole powierzchni trojkata o podstawie "<
          }


       system("pause");

       }[/code]

Wyskakuje mi jakiś błąd zaraz po “if” proszę o porady :expressionless:

  1. if to nie funkcja

  2. Wyskakuje jakiś błąd? To może go przeczytasz, bo pewnie informuje w czym problem.

  3. = to operator przypisania, a nie równości, operator równości to ==

Znaki typu char zapisz w if-ach w pojedynczych apostrofach ’ ’ .

#include 

using namespace std;

   int main ()

   {

       cout << " ***Program oblicza pola powierzchni figur plaskich*** \n\n";

       char x;

       cout << " Wybierz dla jakiej figury chcesz obliczyc pole i kliknij Enter:\n 't' - trojkat\n 'k' - kwadrat\n 'p' - prostokat\n ";

       cin >> x;

       cout << "\n\n";

       if (x== 't')

          {

          float h,a,p;

          cout <<"Podaj podstawe trojkata: ";

          cin >> a;

          cout <<"\nPodaj wysokosc trojkata: ";

          cin >> h;

          p=0.5*a*h;

          cout <<"Pole powierzchni trojkata o podstawie "<
          }


       system("pause");

       }


[/code]

A poza tym w tym if’ie przypisałeś do zmiennej x znak t. = to znak przypisania, nie równości. Często początkujący taki błąd robią :slight_smile: Ale spokojnie, wejdzie w nawyk poprawna forma :smiley: Czyli ma być x == ‘t’

Tak dzięki wielkie za pomoc i wytłumaczenie. Po prostu jestem nie doświadczony i nie douczony, wchłaniam C++ dopiero od wczoraj, a w gąszczu ciężkich poradników trudno znaleźć jest pojedyncze proste błędy czy wskazówki do pisania.

Program zaczyna działać poprawnie, kontynuuje pisanie. Dzięki jeszcze raz i z pewnością jeszcze się tutaj odezwę :smiley:

Zawsze najpierw do oporu próbuj sam sobie poradzić :slight_smile: Uwierz mi, tak lepiej można się czegoś nauczyć :slight_smile:

Początki zawsze są trudne… Wyrób sobie nawyk pisania:

if (‘t’ == x) { … }

if (FLAGA_BLEDU == wynik) { … }

if (0 == x) { … }

To jak pomylisz ‘==’ z ‘=’, kod nie skompiluje się. :slight_smile: Oczywiście dla dwóch zmiennych nic to nie da, ale…

twój program:

#include 

using namespace std;

int main(){

int liczba;

    cout <<"Podaj liczbe: ";

    cin >> liczba;

    if (liczba<5) {cout << "Za malo!";}


    if (liczba>10) {cout <<"Za dużo!";}

    if (liczba>=10&&liczba<=5) {cout <<"Bingo!";}


    system("pause");

}

poczytaj dokładniej o budowie funkcji if.

Mam pytanko:

w czym mam to zapisać? w .exe

a jeśli tak to cały czas wyskakuje jakieś okienko o nieprawidłowej instrukcji

pomocy :frowning:

Nie zapisuje się w exe, tylko kompiluje, używając w tym celu kompilatorów.

Żeby móc łatwo edytować kod i kompilować korzysta się z IDE, takich jak np. Code::Blocks: http://www.codeblocks.org/

Jak poprawnie skompilujesz to plik .exe będzie automatycznie w folderze projektu z programem.