wojtek4994 Opublikowano 2 Marca 2006 Zgłoś Opublikowano 2 Marca 2006 #include <iostream>using namespace std;int main(){ cout<<"Wpisz liczbe w formacie dziesietnym: "; unsigned short int dz; cin>>dz; cin.ignore(); cout<<"\nWpisz długosc liczby w bitach: "; unsigned short int dl; cin>>dl; cin.ignore(); cout<<"\n\nTrwa obliczanie binarnej postaci liczby...\n"; bool r[8]; unsigned short int x=dz; for(unsigned short int licznik=0; licznik<dl; ++licznik) { r[licznik]=x%2; if (r[licznik]==1) x=x/2-0,5; else x/=2; cout<<"..."; } cout<<"\n\nPostac binarna liczby "<<dz<<" to "; for(unsigned short int licznik=dl-1; licznik>=0; --licznik) { cout<<r[licznik]; } cout<<"\n\nNacisnij ENTER aby zakonczyc..."; getchar(); return 0;} Powyższy programik poprawnie oblicza wartość binarną podanej liczby, ale po jej wypisaniu program nie pokazuje komunikatu o nacisnieciu ENTERa, tylko pokazuje się okienko że spowodował błąd i się wyłącza. Kod jest oczywiście w C++. Używam Dev-C++ 4.9.9.2. P.S.: Wiem, że powyższy program jest właściwie bezsensowny, mam już całkiem inny pomysł na jego rozwiązanie (żeby obliczyć wartość binarną trzeba podać długość wyniku :D - proszę bez głupich komentarzy). Najpierw jednak chciałbym dowiedziec się czemu wyskakuje błąd. Jak widać jestem początkujący, pewnie jak zwykle popełniłem gdzieś drobny błąd - proszę o pomoc :D. A tak przy okazji moglibyście mi podać jakieś adresy z dorbymi kursami tworzenia pod Windows (wiecie, w okienkach, a nie w konsoli). Pzdr Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
wojtek4994 Opublikowano 2 Marca 2006 Zgłoś Opublikowano 2 Marca 2006 już sobie poradziłem :P wystarczyło usunąć modyfikator unsigned w drugiej pętli żeby program się nie zapętlał (warunek licznik>=0 był zawsze spełniony ponieważ licznik był typu unsigned short int :)) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...