Lisard utworzono 14 lipca 2007 utworzono 14 lipca 2007 Zacząłem się uczyć c++ znalazłem w internecie Tutorial "od zera do gier kodera" i w nim po 3 rozdziale jest ćwiczenie: "1. 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?" Wszystkie inne ćwiczenia wykonałem bez problemu, a tego jakoś nie potrafię. Każda pomoc będzie mile widziana. [ Dodano: 2007-07-14, 13:07 ] Poczytałem trochę i to napisałem, może komuś się przyda, sorry za zaśmiecenie forum : #include <conio.h>#include <iostream>int main (){int nliczba1;std::cout << " Podaj liczbe ";std::cin >> nliczba1;if (nliczba1 > 100){ std::cout << "pzostale"; getch(); }if(nliczba1>=10 && nliczba1<=99){std::cout << "dwucyfrowa";getch();}if(nliczba1>=1 && nliczba1<=9 ){ std::cout << "jednocyfrowa"; getch(); }if (nliczba1 < 0){ std::cout << "ujemna"; getch(); }}
święty komentarz 14 lipca 2007 komentarz 14 lipca 2007 Dobry wybór IMO z ifami Ze switchem mógłby być problem... A poza tym to chciałem tylko dodać że zamiast pisać przed każdym cin i cout "std::" to można (warto? ) na początku np po includach napisać: using namespace std; Można też skrócić kod dając po ifach jedno "getch"..a w takim wypadku niepotrzebne są te klamry po ifach, ale niech już zostaną dla przejrzystości kodu No i proponuję stosować jeden styl wcięć w kodzie żeby przy większych programach nie pogubić się...ja preferuję taki : #include <conio.h>#include <iostream>using namespace std;int main (){ int nliczba1; cout << " Podaj liczbe "; cin >> nliczba1; if (nliczba1 > 100) { cout << "pozostale"; } if(nliczba1 >= 10 && nliczba1 <= 99) { cout << "dwucyfrowa"; } if(nliczba1 >= 1 && nliczba1 <= 9) { cout << "jednocyfrowa"; } if (nliczba1 < 0) { cout << "ujemna"; } getch();} Miłego programowania
Lisard komentarz 14 lipca 2007 Autor komentarz 14 lipca 2007 Dzięki za wszystkie rady o tym że mogę sobie ułatwić pracę wpisując : "using namespace std;" wiedziałem, ale się już wcześniej przyzwyczaiłem do ciągłego pisania std i nie mogę się odzwyczaić A wcięć ręcznie nie robie zostawiam to kompilatorowi jak widać nie wychodzi mu to najlepiej
święty komentarz 15 lipca 2007 komentarz 15 lipca 2007 No z tymi wcięciami to różnie bywa ale jak "zaenterujesz" po klamrze to przeważnie fajnie odskakuje...problem tylko że czasami na 2 metry No to wtedy ręcznie go skracam A i przy okazji przyszło mi do głowy że w sumie można by zastosować tu "else...if" zamiast same ify czyli np tak: #include <conio.h>#include <iostream>using namespace std;int main (){ int nliczba1; cout << " Podaj liczbe "; cin >> nliczba1; if (nliczba1 > 100) cout << "pozostale"; else if(nliczba1 >= 10 && nliczba1 <= 99) cout << "dwucyfrowa"; else if(nliczba1 >= 1 && nliczba1 <= 9) cout << "jednocyfrowa"; else cout << "ujemna"; getch();} No i jako że bez klamer będzie wykonana tylko jedna operacja to już powyrzucałem je i w sumie pomimo wcześniejszych obaw ...nawet przejrzyście jest ...ale to już tak na marginesie
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.