[C++] Problem z instrukcją "if"
Ostatnio zmodyfikowano 2012-12-15 12:08
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: #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 :) |
|
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). |
|
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. |
|
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: 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() . |
|
Berux |
» 2012-12-14 20:07:37 getch() jest niepotrzebne
/edit mi dziala , jednak getch jest potrzebne - sorry |
|
CodeMeister |
» 2012-12-14 20:07:59 błąd w ifach sproboj if else:
if( liczba < 0 ) cout << "ujemna/n"; else if( liczba > 9 )
itd...
Jak na tydzień nauki to i tak całkiem nieźle ;) |
|
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. |
|
Berux |
» 2012-12-14 20:10:30 Albo utwórz tylko w main i podaj do argumentów |
|
« 1 » 2 |