Warrning w c++ - Wersja do druku +- Windows 7 Forum: konfiguracja, optymalizacja, porady, gadżety • (https://windows7forum.pl) +-- Dział: Inne (/inne-11-f) +--- Dział: Hydepark (/hydepark-18-f) +--- Wątek: Warrning w c++ (/warrning-w-c-15277-t) |
Warrning w c++ - rafi993 - 08.04.2011 17:20 A więc w szkole nakazano nam napisać program zamieniający liczbę dziesiętną na szesnastkową. Po napisaniu(wydawało mi się że dobrze) wyskakuje mi błąd: [warning]overflow in implicit constant conversion. Błąd wyrzuca przy linijce case gdzie do z ma być przypisane A. oto kod programu: Kod: #include <cstdlib> dzięki za każdą pomoc RE: Warrning w c++ - HaXoR - 12.04.2011 22:54 o.O gdzie ci to wogóle skompilowało... w ten sposób w który ty chcesz zrobić musiał byś kombinować z rzutowaniem a i tak by pewnie nie działało tak jak powinno w niektórych wypadkach. Jak dla mnie masz troche dziwne myślenie algorytmiczne, no ale każdy robi jak lubi . Przykład działającego programu pisany na szybko ( działa poprawnie do liczby ok 2 000 000 000) #include <iostream> #include <conio.h> long int lb, bufor; short int ll,systeml; char tab[32] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','w','z'}; char wyn[256]; void licz(int a); int main() { std::cout<<"podaj liczbe"<<std::endl; std::cin>>lb; while(!systeml) { std::cout<<"podaj system liczbowy (max x32)"<<std::endl; std::cin>>systeml; if(systeml>32 || systeml==1){systeml=0;} } bufor=lb; wyn[ll]=tab[bufor%systeml]; ll+=1; licz(lb-(bufor%systeml)); std::cout<<lb<<" x(10) = "; while(ll!=0) { std::cout<<wyn[ll]; ll-=1; } std::cout<<wyn[ll]<<" x("<<systeml<<")"; getch(); } void licz (int a) { while(a!=0) { a=a/systeml; wyn[ll]=tab[a%systeml]; a=a-(a%systeml); if(a){ll+=1;} } } RE: Warrning w c++ - rafi993 - 13.04.2011 04:51 Można zamknąć, Już znalazłem rozwiązanie. |