Форум программистов, компьютерный форум CyberForum.ru

Работа с дробным числом - C++

Восстановить пароль Регистрация
 
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 177
28.10.2012, 21:18     Работа с дробным числом #1
Определить, является ли число полиндромом относительно точки.

Добавлено через 19 минут
Ребят, помогите. У меня была идея с выделением целой и дробной части
Но что-то в компиляторе косячит modf
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
castaway
Эксперт С++
4841 / 2980 / 367
Регистрация: 10.11.2010
Сообщений: 11,012
Записей в блоге: 10
Завершенные тесты: 1
28.10.2012, 21:21     Работа с дробным числом #2
Цитата Сообщение от sergey_viper Посмотреть сообщение
У меня была идея с выделением целой и дробной части
Но что-то в компиляторе косячит modf
Покажи как.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
28.10.2012, 21:24     Работа с дробным числом #3
sergey_viper, здесь не нужно использовать тип double, так как числа с плавающей точкой не точно хранятся в памяти, бесполезно выделять целую и дробную части. Используйте строку.
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 177
28.10.2012, 21:37  [ТС]     Работа с дробным числом #4
Цитата Сообщение от lazybiz Посмотреть сообщение
Покажи как.
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <math.h>
using namespace std;
 
int main() {
float A,N,C;
A = modf(N,C*;)
cout<<A<<endl;
return 0;
}
Добавлено через 1 минуту
Toshkarik:
Спасибо, попробую и так.
Через сепарэйт же?
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
28.10.2012, 22:16     Работа с дробным числом #5
sergey_viper, ну я бы сделал с помощью strchr. С помощью strchr находим позицию точки.

Добавлено через 26 минут
Хотя нет. Просто проверяете сколько символов в строке, если четное, то точно не палиндром. Если не четное то начинаете сравнивать символы с начала и конца. Так же можете проверять действительно ли символы - цифры и действительно ли по середине находится точка.
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 177
17.12.2012, 21:05  [ТС]     Работа с дробным числом #6
Цитата Сообщение от Toshkarik Посмотреть сообщение
sergey_viper, ну я бы сделал с помощью strchr. С помощью strchr находим позицию точки.

Добавлено через 26 минут
Хотя нет. Просто проверяете сколько символов в строке, если четное, то точно не палиндром. Если не четное то начинаете сравнивать символы с начала и конца. Так же можете проверять действительно ли символы - цифры и действительно ли по середине находится точка.
Как оказалось, это задание нужно сделать без работы со строками.
Пока придерживаюсь такого алгоритма:
Вводим число н, со знаками после запятой. Разделяем его на целую и дробную части. Дробную часть выделяем через флур. И умножаем дробную часть(в отдельной переменной) и само н на 10, пока она не станет (дробная часть от н) =0.
Но тут у меня возникает проблема. По идее оно должно рано или поздно остановиться, но мой цикл становится бесконечным.Код привожу
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
    int c;
    double n;
    float d;
    cout << "Hello world!" << endl;
    cin>>n;
    c=floor(n);
    d=n-c;
    cout<<floor(d);
    while (floor(n))
    {n*=10;
    d*=10;
    cout<<d;}
    return 0;
}

Если есть более лёгкие решения, наведите пожалуйста.

Добавлено через 1 час 56 минут
up: всё ещё пробую.
Yandex
Объявления
17.12.2012, 21:05     Работа с дробным числом
Ответ Создать тему
Опции темы

Текущее время: 04:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru