C++. Символы и строки. Задача 13

Программа преобразует введенное пользователем число десятичной системы счисления в шестнадцатеричную.

Решение:

Возможно, что мой способ решения задачи покажется громоздким. Поэтому буду рад альтернативным вариантам, оставленным в комментариях.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <math.h>
#include «stdafx.h»
#include <iostream>
using namespace std;
int main()
{setlocale(LC_ALL,«Rus»);
char dec_str[255], n;
int hex=0, i=0, ost, perev, chislo=0;
cout<<» Введите число в десятичной СС >> «;
cin.getline(dec_str, 255);
n=strlen(dec_str);
while (n>0) //переводим данные в int
{
n;
perev=dec_str[i];
if ((perev>=48) && (perev<=58))
chislo+=(perev48)*(pow(10, float(n)));
else exit(0); i++;
} i=0;
while (chislo!=0)
{
ost=chislo%16; chislo=chislo/16;
switch(ost)
{
case 10: n=‘A’; break; case 11: n=‘B’; break;
case 12: n=‘C’; break; case 13: n=‘D’; break;
case 14: n=‘E’; break; case 15: n=‘F’; break;
}
if ((ost>=0) && (ost<=9))
{perev=ost+48; dec_str[i]=perev;}
else dec_str[i]=n;
i++;
}dec_str[i]=\0;
n=strlen(dec_str);
cout<<endl<<«Переведено в шестнадцатеричную СС >>»;
for (i=n; i>=0; i)
cout<<dec_str[i];
system(«pause>>void»);
return 0;
}
Рейтинг
( Пока оценок нет )
Загрузка ...