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


(Gen Salvador) #1

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");

}

(Krzkaczor) #2

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

to zastap moze:

if(liczba == 5)cout << "blabla";


(Gen Salvador) #3

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!";

(Mister Wojtek) #4

albo tak:

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

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

else cout <<"Bingo!";

bardziej profesjonalnie :wink:

pozdrawiam


(Gen Salvador) #5

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:


(Sawyer47) #6

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 ==


(system) #7

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'


(Gen Salvador) #8

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:


(system) #9

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


(Jam1234) #10

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...


(Tezarrus) #11

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.


(Dzieciax2) #12

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:


(somekind) #13

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/


(Quentin) #14

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