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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 185
#1

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

28.10.2012, 21:18. Просмотров 470. Ответов 5
Метки нет (Все метки)

Определить, является ли число полиндромом относительно точки.

Добавлено через 19 минут
Ребят, помогите. У меня была идея с выделением целой и дробной части
Но что-то в компиляторе косячит modf
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2012, 21:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с дробным числом (C++):

Проверить, является ли введенная с клавиатуры строка дробным отрицательным числом - C++
Требуется написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным отрицательным числом. Требуется...

Программа, которая проверяет, является ли введенная с клавиатуры строка дробным числом - C++
Программа которая проверяет является ли введенная с клавиатуры строка дробным числом

Написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным числом - C++
Написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным числом.

Программа, которая проверяет является ли введенная с клавиатуры строка дробным отрицательным числом - C++
помогите написать программу, которая проверяет является ли введенная с клавиатуры строка дробным отрицательным числом.не знаю как учесть...

Написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным отрицательным числом - C++
Сделайте пожалуйста. Нужно написать программу, которая проверяет, является ли введенная с клавиатуры строка дробным отрицательным числом.

работа с числом - C++
дано трехзначное число. в нем зачеркнули первую слева цифру и поставили ее справа. Вывести полученное число.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
28.10.2012, 21:21 #2
Цитата Сообщение от sergey_viper Посмотреть сообщение
У меня была идея с выделением целой и дробной части
Но что-то в компиляторе косячит modf
Покажи как.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
28.10.2012, 21:24 #3
sergey_viper, здесь не нужно использовать тип double, так как числа с плавающей точкой не точно хранятся в памяти, бесполезно выделять целую и дробную части. Используйте строку.
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 185
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
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
28.10.2012, 22:16 #5
sergey_viper, ну я бы сделал с помощью strchr. С помощью strchr находим позицию точки.

Добавлено через 26 минут
Хотя нет. Просто проверяете сколько символов в строке, если четное, то точно не палиндром. Если не четное то начинаете сравнивать символы с начала и конца. Так же можете проверять действительно ли символы - цифры и действительно ли по середине находится точка.
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 185
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: всё ещё пробую.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2012, 21:05
Привет! Вот еще темы с ответами:

Работа с двузначным числом - C++
Здравствуйте! Объясните пожалуйста, как написать программу, которая будет вводимое двузначное число менять местами внутри себя: т.е...

Работа с числом float - C++
Привет всем... У меня есть число 9.34671 в переменной t типа float; float t = 9.34671; как мне получить в переменную long int t1 -...

работа с функциями со сменным числом параметров - C++
Не пойму почему не работает. выдает ошибки: C:\4ko.cpp:9: error: expected `)' before '...' token ...

Работа функции с переменным числом параметров - C++
Добрый вечер! Есть функция создающая квадратную матрицу, по числу параметров и самим элементам. Опущу все проверки и другое, не важное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.12.2012, 21:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru