Informatică, întrebare adresată de moonlight01, 8 ani în urmă

Salut! Cerinta:

Să se citească un număr întreg în baza 16 şi să se afişeze valoare citită în baza 10 și în
baza 8.

Am scris urmatorul cod:
#include
#include

using namespace std;

int main()
{
int a;
cout << "Dati un nr. intreg in baza 16:";
cin.setf(ios::hex);
cin >> a;
cout.setf(ios::dec);
cout << "Numarul citit in baza 10 este:" << a << endl;
cout.setf(ios::oct);
cout << "Numarul citit in baza 8 este:" << a << endl;
_getch();
return 0;
}

Am atasat imaginea la iesire.. Ce imi scapa ? Adica sigur nu asa ar trebui sa-mi arate daca introduc de la tastatura 16 si citit in baza 10 si 8 tot 16 sa fie... Ma poate ajuta cineva ? :)

Anexe:

boiustef: e C ? slab cunosc, dar afisezi permanent pe a acel introdus, poate rezultatele după conversie tr sa-l dai altor variabile si să le afişezi pe ele
moonlight01: Nu, nu are legatura.. Cred ca am rezolvat

Răspunsuri la întrebare

Răspuns de pmarian98
2

#include <iostream>

#include <cstring>

using namespace std;

int main()

{

   char b16[100];

   int nr=0,p=1,i;

   cin.get(b16,100);

   for(i=strlen(b16)-1;i>=0;i--)

   {

       switch(b16[i])

       {

       case 'A':nr+=10*p;break;

       case 'B':nr+=11*p;break;

       case 'C':nr+=12*p;break;

       case 'D':nr+=13*p;break;

       case 'E':nr+=14*p;break;

       case 'F':nr+=15*p;break;

       default:nr+=int(b16[i]-'0')*p;

       }

       p*=16;

   }

   cout<<nr;

   return 0;

}


pmarian98: switch-ul il folosesc in cazul in care intalnesc una dintre literele A,B,C,D,E,F si le transform in baza 10, in cazul in care nu este litera intra in default
Alte întrebări interesante