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

[C++] Problem z instrukcją "if"

Ostatnio zmodyfikowano 2012-12-15 12:08
Autor Wiadomość
Devinox
Temat założony przez niniejszego użytkownika
[C++] Problem z instrukcją "if"
» 2012-12-14 19:47:16
Robię zadanie testowe z kursu "Od zera do gier kodera":
"Stwórz program, który poprosi użytkownika o liczbę całkowitą i przyporządkuje ją do jednego z czterech przedziałów: liczb ujemnych, jednocyfrowych, dwucyfrowych lub pozostałych.
Która z instrukcji - if czy switch - będzie tu odpowiednia?"

Stworzyłem coś takiego ale jak coś to się nie śmiać bo z c++ mam styczność od ledwo tygodnia ;p:

C/C++
#include <iostream>
#include <conio.h>

using namespace std;

int liczba()
{
    int nLiczba;
   
    if( nLiczba >= 1 )
    {
        if( nLiczba >= 10 )
        {
            if( nLiczba >= 100 )
            {
                cout << "liczba pozostala";
                getch();
            }
            else
            {
                cout << "liczba 2cyfrowa";
                getch();
            }
        }
        else
        {
            cout << "liczba jednocyfrowa";
            getch();
        }
       
    }
    else
    {
        cout << "liczba ujemna";
        getch();
    }
}

int main()
{
    int nLiczba;
   
    cout << "Podaj dowalna liczba ktora program przyporzadkuje do odpowiedniego zbioru: ";
    cin >> nLiczba;
   
    liczba();
}

Problem polega na tym że jakąkolwiek liczbę wpisze to zawsze przyporządkowuje mi ją do liczb pozostałych ;/.
z góry dzięx za pomoc :)
P-71011
f0g
» 2012-12-14 19:52:55
U mnie działa poprawnie. Tutaj też działa:
http://ideone.com/G9wtdy

Nie dawaj
getch();
 w
if
 tylko na końcu programu (zaraz przed
return 0
 :P).
P-71012
Devinox
Temat założony przez niniejszego użytkownika
» 2012-12-14 20:00:10
Używam COde::Blocks 12.11 i kompilatora GNU GCC Compiler jeśli to ma jakieś znaczenie.
P-71013
f0g
» 2012-12-14 20:06:05
Skompilowałem program w CodeBlocks (10.05 i kompilator GNU GCC Compiler) i też działa poprawnie.

Dziwnie tą funkcję "zrobiłeś" (nie znam za bardzo "profesjonalnego" słownictwa :P). Spróbuj tak:
C/C++
int liczba( int nLiczba )
{
    KOD
}

int main()
{
    int liczba;
    cin >> liczba;
   
    liczba( liczba );
    return 0;
}
I jak funkcja nic nie zwraca to lepiej "zrobić" funkcję
void()
.
P-71014
Berux
» 2012-12-14 20:07:37
getch() jest niepotrzebne

/edit mi dziala , jednak getch jest potrzebne - sorry
P-71015
CodeMeister
» 2012-12-14 20:07:59
błąd w  ifach sproboj if else:
C/C++
if( liczba < 0 )
     cout << "ujemna/n";
else if( liczba > 9 )
//dwucyfrowa
itd...

Jak na tydzień nauki to i tak całkiem nieźle ;)
P-71016
SeaMonster131
» 2012-12-14 20:09:09
Daj
int nLiczba
 raz, ale globalnie, np tuż za using namespace std; Lub zrób funkcję z argumentami. Dlaczego? Ponieważ w funkcji odnosisz się do innej zmiennej oraz w main także.
P-71017
Berux
» 2012-12-14 20:10:30
Albo utwórz tylko w main i podaj do argumentów
P-71019
« 1 » 2
  Strona 1 z 2 Następna strona