Warrning w c++ |
|
rafi993 User systemu
Liczba postów: 321
|
Post: #1
Warrning w c++
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 POMOGŁEM?? KLIKNIJ 08.04.2011 17:20 |
HaXoR Wdrażany
Liczba postów: 14
|
Post: #2
RE: Warrning w c++
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;} } }
(Ten post był ostatnio modyfikowany: 12.04.2011 22:59 przez HaXoR.)
12.04.2011 22:54 |
rafi993 User systemu
Liczba postów: 321
|
Post: #3
RE: Warrning w c++
Można zamknąć, Już znalazłem rozwiązanie.
POMOGŁEM?? KLIKNIJ 13.04.2011 04:51 |
« Starszy wątek | Nowszy wątek »
Autor: rafi993 Temat został oceniony na 0 w skali 1-5 gwiazdek. Zebrano 0 głosów. |