x-kom hosting

Problem z ćwiczeniem

Lisard
utworzono
utworzono

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
komentarz

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
komentarz

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
komentarz

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 :P 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 :D ...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.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.