Предмет: Информатика, автор: koko896

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

#include
#include
#include
#include
using namespace std;
int main()
{
float num;
double rem = 0;
int dec = 0;
int i = 0;
int k=0;

cout << "Please enter a number with a decimal point: ";
cin >> num;
float ohalf = num - (int)num;
int half = num;
while (half !=0)
{
rem = half % 10;
half /= 10;
dec += rem *= pow(8, i);
i++;
}
cout< i = -1;
while (ohalf != 0)
{
rem = ohalf *pow(8, i);
i--;
}
cout << rem;


return 0;
}


settom: Почему rem = half % 10; если перевод 8-ричную систему?
koko896: Упс, там должно быть rem = half % 8
koko896: #include
#include
#include
#include
using namespace std;
int main()
{
float num;
double rem = 0;
int dec = 0;
int i = 0;
int k=0;

cin >> num;
float ohalf = num - (int)num;
int half = num;
while (half !=0)
{
rem = half % 8;
half /= 8;
dec += rem *= pow(10, i);
i++;
}
cout<i = -1;
while(ohalf != 0)
{
rem = ohalf *pow(10, i);
i--;
}
cout << rem;

return 0;
}
settom: Далее, не dec += rem *= pow(10, i); а dec += rem * pow(10, i);

Ответы

Автор ответа: settom
1

Ответ:

Преобразование целой части тоже конечно можно переделать на манер дробной, но ...

Объяснение:

#include <iostream>

#include <math.h>

using namespace std;

using namespace std;

int main()

{

float num;

double rem = 0;

int dec = 0;

double dec2 = 0;

double x, y;

int i = 0;

int k = 0;

const int precision = 9; // Количество знаков после запятой

cout.precision(precision);

cin >> num;

double ohalf = num - (int)num;

int half = num;

while (half != 0)

{

 rem = half % 8;

 half /= 8;

 dec += rem * pow(10, i);

 i++;

}

for (i = 0; i < precision; i++)

{

 ohalf = std::modf(ohalf * 8.0, &x); // целая часть запишется в x, дробная - в y

 dec2 += x * pow(0.1, i+1);

}

dec2 += dec;

cout << num << "(10) = " << dec2 << "(8)";

}


koko896: Спасибо !!!
Похожие вопросы
Предмет: Русский язык, автор: Познющяя
Предмет: Немецкий язык, автор: ПолинаЦиглер
Предмет: Математика, автор: хххххх26