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

непонятки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Получение идентификатора кодировки по названию http://www.cyberforum.ru/cpp-beginners/thread338337.html
Всем привет! Думаю над следующей задачей Необходимо осуществить преобразование кодировки текста в UTF-8 Буду использовать функцию MultiByteToWideChar Один вопрос В ней надо указывать...
C++ undefined reference Доброго времени суток! Есть следующий код: #include <iostream> using namespace std; enum direction {Up, Down, Left, Right}; void rotateLeft (direction &); http://www.cyberforum.ru/cpp-beginners/thread338308.html
C++ Стек!
Реализуйте структуру данных "стек". Напишите программу, содержащую описание стека и моделирующую работу стека, реализовав все указанные здесь методы. Программа считывает последовательность команд и...
Написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы. C++
напишите пожалуйста в С++
C++ putty http://www.cyberforum.ru/cpp-beginners/thread338291.html
преведы! аналогичная тема уже есть, но тем не менее :) где можно почитать маны//исходники проектов использующих ssh. исходники putty нагоняют тихий ужас и вызывают обмороки. даже не знаю...
C++ Проблемы с выводом Подскжите пожалуйста почему не работает эта программа ? Почему точнее не работает вывод ? #include<iostream> #include<string> #include<fstream> //для ofstream #include<windows.h> using namespace... подробнее

Показать сообщение отдельно
grizlik78
Эксперт С++
1911 / 1443 / 112
Регистрация: 29.05.2011
Сообщений: 3,000
03.08.2011, 21:19
Цитата Сообщение от easybudda Посмотреть сообщение
тоже неправильно отработает.
Неправильно только в том смысле, что вместо 2 целых и 0 сотых получится 1 целая и 100 сотых. Но сумма то сходится Сто сотых можно и потом сократить, но в целом согласен. Правда я исходил из того, что исходное число вводится с двумя знаками точности. В этом случае целые будут представляться точно. Но если исходное значение вычисляется, то такая неприятность вполне вероятна.

Добавлено через 15 минут
Попробуем перекомпоновать. Вроде и временная переменная ушла и деление. Правда тут надо хорошо подумать, не пострадала ли хоть немножко область допустимых значений. Мой исходный вариант представляется мне немного надёжнее, но там придётся перенос осуществлять "вручную".
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdlib.h>
#include <math.h>
#include <stdint.h>
 
#define signround(d) ( ( (d) < 0.0 ) ? ceil((d) - 0.5) : floor((d) + 0.5) )
#define PRECISION 3
 
int main(void){
        double val;
        
        while ( printf("> ") && scanf("%lf", &val) == 1 ){
                int64_t iPart = (int64_t)(val + 0.5*pow(10.0, -PRECISION));
                int64_t fPart = (int64_t)(signround((val - iPart)*pow(10.0, PRECISION)));
                printf("Int part: %lld  Fract part: %lld\n", iPart, fPart);
        }
        
        exit(0);
}
Хотя, баловство это всё
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru