Odpowiedz

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>
#include <iostream>

using namespace std;
void szes(int l, char t[], char &z){
     z=0;
     while(l>16) {
                   t[z]=l%16;
                   l=l/16; z++;}
                   t[z]=l;}
int main(int argc, char *argv[])
{int l,z; char t[100]; string A,B,C,D,E,F;
cout<<"podaj liczbe"<<endl;
cin>>l;
szes(l,t,z);

switch (z) {
      case '0':  z=0; break;
      case '1':  z=1; break;
      case '2':  z=2; break;
      case '3':  z=3; break;
      case '4':  z=4; break;
      case '5':  z=5; break;
      case '6':  z=6; break;
      case '7':  z=7; break;
      case '8':  z=8; break;
      case '9':  z=9; break;
      case '10':  z=A; break;
      case '11':  z=B; break;
      case '12':  z=C; break;
      case '13':  z=D; break;
      case '14':  z=E; break;
      case '15':  z=F; break;
         }

   for(char i=z;i>=0;i--)

cout<<t[i]<<endl;      
      
      
      
      
    system("PAUSE");
    return EXIT_SUCCESS;
}

dzięki za każdą pomoc

[Obrazek: user.gif]

POMOGŁEM?? KLIKNIJ [Obrazek: postbit_thx.gif]

08.04.2011 17:20

Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
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 Cwaniak. 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

Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
rafi993
User systemu

Liczba postów: 321
Post: #3

RE: Warrning w c++


Można zamknąć, Już znalazłem rozwiązanie.

[Obrazek: user.gif]

POMOGŁEM?? KLIKNIJ [Obrazek: postbit_thx.gif]

13.04.2011 04:51

Znajdź wszystkie posty użytkownika
Odpowiedz cytując ten post
Odpowiedz

« Starszy wątek | Nowszy wątek »

Temat został oceniony na 0 w skali 1-5 gwiazdek.
Zebrano 0 głosów.