С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Karfagen
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 6
#1

написать программку на С++ Тема:целочисленная арифметика - C++

09.10.2012, 22:37. Просмотров 429. Ответов 5
Метки нет (Все метки)

Дано ABCDEF.GHIKLM - вещественное число
1) убрать из числа EH
2) на место группы ABCD записать их сумму, сохранив в числе положение точки относительно целой и дробной частей числа.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2012, 22:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос написать программку на С++ Тема:целочисленная арифметика (C++):

Целочисленная арифметика - C++
Нужно переставить старшую и младшую цифры в записи натурального числа. Не могу понять как это сделать

«Целочисленная арифметика» - C++
Благодарен буду кто поможем с задачей Ниже. Не могу понять что и как вообще, в с ++ желательно Дано натуральное число N. Найти и...

целочисленная арифметика c++ - C++
Как сравнивать цифры в числе который находиться в массиве???

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

Целочисленная арифметика - C++
Помогите пожалуйста в задаче: Найти количество натуральных двузначных чисел, каждое из которых делится на 3 и на 13. Найти те натуральные...

Целочисленная арифметика - C++
:wall:Очень нуждаюсь в помощи!!! Игрок А объявляет двузначное число от 01 до 99. Игрок В меняет местами его цифры и прибавляет полученное...

5
Psilon
Master of Orion
Эксперт .NET
5914 / 4811 / 634
Регистрация: 10.07.2011
Сообщений: 14,409
Записей в блоге: 5
Завершенные тесты: 4
09.10.2012, 22:43 #2
Karfagen,
Поподробней задание объясните, на примере.
0
Karfagen
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 6
09.10.2012, 22:50  [ТС] #3
Допустим дано число 846429.731525
(ABCDEF.GHIKLM)
1) EH нужно убрать вообще в ответе чтоб их не было, т.е. убрать 2 и 3
2) найти сумму A+B+C+D и записать полученное число ровно под тем что было точка под точкой чтобы были
например вот так: цифры любые можно от 0 до 9 я как пример эти взял
846429.731525
.....229.71525 <--- типа конечный результат 8+4+6+4 это типа сложили и получили 22 , затем 2 следущую убираем как по условию и после запятой записываем все кроме 3 тоже убираем остальные без изменения
0
Psilon
Master of Orion
Эксперт .NET
5914 / 4811 / 634
Регистрация: 10.07.2011
Сообщений: 14,409
Записей в блоге: 5
Завершенные тесты: 4
09.10.2012, 23:15 #4
Karfagen, с первым числом мне кажется проще всего работать, переведя в строку (хотя и затратно, зато просто). А вот второе нифига не ясно
0
Karfagen
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 6
09.10.2012, 23:19  [ТС] #5
846429.731525 Это вещественное число вводимое с клавиатуры
0
diagon
Higher
1932 / 1198 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.10.2012, 23:39 #6
Как вариант
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main()
{
    double x = 846429.731525;
    
    int left = x;
    int right = (long long)(x * 1e6) % 1000000;
 
    left = left / 100 * 10 + left % 10;
 
    right = right / 100000 * 10000 + right % 10000;
 
    int sum = 0;
    for (int tmp = left / 10; tmp; tmp /= 10)
        sum += tmp % 10;
 
    left = left % 10 + sum * 10;
 
    std::cout << left << '.' << right << std::endl;
}
С даблами вряд ли получится сделать, так как они постоянно округляются.

Причем в студии это работает, а в gcc неправильно находит дробную часть(из-за округления).

Добавлено через 2 минуты
В общем, подобрал эпсилон, который работает и в gcc и в студии.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
int main()
{
   const double EPS = 1e-4;
 
   double x = 846429.731525;
 
   int left = x;
   int right = (long long)(x * 1e6 + EPS) % 1000000;
 
   left = left / 100 * 10 + left % 10;
 
   right = right / 100000 * 10000 + right % 10000;
 
   int sum = 0;
   for (int tmp = left / 10; tmp; tmp /= 10)
      sum += tmp % 10;
 
   left = left % 10 + sum * 10;
 
   std::cout << left << '.' << right << std::endl;
}
Если не будет работать, попробуйте поиграться с 5 строкой.
1
09.10.2012, 23:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2012, 23:39
Привет! Вот еще темы с ответами:

Целочисленная арифметика - C++
на заданном отрезке натурального ряда чисел найти : 1. все простые числа; 2. все близнецы; 3. все совершенные числа; 4. все...

Целочисленная арифметика - C++
Найти на отрезке натуральное число, имеющее наибольшее количество делителей.

Целочисленная арифметика - C++
1. Найти наибольшую нечетную цифру. Если ее нет, возвратить 0? 2. Определить, состоит ли число из четных и нечетных цифр?

Целочисленная арифметика - C++
Вот мне дали задание но я не могу понять что от меня требуется. бьясните как оно делается.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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