Подскажите какая разница между double и long double. На практике у этих типов даже точность одинаковая. И еще есть ли в C / C++ возможность использовать более точный тип. Хотя бы 18 значащих цифр? Некий аналог extended из Pascal.
Здравствуйте, Black Monk! long double и есть аналог EXTENDED из Pascal. Разница между long double и double - в точности и размере (double - 6 байт, long double - 10 байт).
Ответ отправлен: 11.10.2004, 10:51 Отправитель: Василевский Александр Отвечает vitya
Приветствую Вас, Black Monk! В VC double и long double это одинаковые типы, в gcc, они вроде как разнятся. long double, в теории, и есть extended тип паскаля. real -> float single -> double extended -> long double.
Ответ отправлен: 09.10.2004, 09:48 Отправитель: vitya Отвечает Nicholas
Привет, Black Monk! Разница между типом double и long double зависит от реализации. Ответ отправлен: 09.10.2004, 19:30 Отправитель: Nicholas Отвечает DiGiT
Доброе время суток, Black Monk! Вообще говоря разницы нет, long double в MSVC имеет такую же точность как и double. Дело в том, что все расчеты с вещественной арифметикой идут в типе double, если число имеет не такой тип, оно к нему преобразуется. даже если и long double имеет размер 10байтов, толку от этого не получишь... Ответ отправлен: 11.10.2004, 03:12 Отправитель: DiGiT Отвечает gAmUssA
Здравствуйте, andrew! Алгоритм следующий: Sum = 0; Counter = 0; while (Number != 0) { Sum += Number % 10; Number /= 10; ++Counter; } if (Sum != 0) Sum /= Counter; print Sum; И никаких массивов Ответ отправлен: 09.10.2004, 09:46 Отправитель: vitya Отвечает gAmUssA
Доброе время суток, andrew! Я думаю, что можешь перевести в строку. По моему и с массивами достаточно просто. В цикле заводишь счётчик элементов массива, суммируешь все эл-ть, потом просто на него (на счётчик) делишь. Всё просто.
Грузите апельсины бочками... Ответ отправлен: 09.10.2004, 14:51 Отправитель: gAmUssA Отвечает knick
Добрый день, andrew! Один из вариантов: переводите чисто в строку, а потом уже считаете среднее арифметическое цифр. Ответ отправлен: 09.10.2004, 12:41 Отправитель: knick Отвечает DiGiT
Доброе время суток, andrew! Согласен с ответом vitya, если число помещается в sizeof(long) байта(ну или там максимальный тип для целого числа), иначе будет плохо. long Num = Исходное число. int sum= 0; for(;Num!= 0;){ sum+= Num % 10; Num/= 10; } если же число более такого размера вводи его как строку и далее рассматривай как массив символов, где каждый символ цифра. далее просто имеешь: char massiv[BUFFER_SIZE]; int sum= 0; for(int i= 0;i< strlen(massiv); i++){ sum+= massiv[i]- 30;/*вроде 30код у нуля в ASCII не помню*/ } Ответ отправлен: 11.10.2004, 03:08 Отправитель: DiGiT Отвечает SackTap
Добрый день, andrew! можно воспользоваться функцией itoa - перевод из числа в строку. Потом вычисляем длину строки, не считая нуль-символа в конце и делаем цикл for от 0 до конца строки и в нем прибавляем каждый следующий разряд числа, потом все вычисляем. Ответ отправлен: 10.10.2004, 03:39 Отправитель: SackTap
Вопрос № 1948
добрый день! у меня вопрос насчёт visual c++ 6. там в редакторе есть настройка шрифтов, но диалог настройки нестардантный, и нельзя выбрать набор символов: по умолчанию стоит западноевропейский, и нельзя выбрать кириллицу. (я подозреваю что этот вопрос уже задавался неоднократно) подскажите пожалуйста, как настроить редактор на использование кириллицы?
Добрый день, soflot! Попробуй использовать шрифт, у которого только кириллический набор символов. У меня в всё и так нормально работает, т.е. поддержка кириллицы присутствует Грузите апельсины бочками... Ответ отправлен: 09.10.2004, 15:38 Отправитель: gAmUssA
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.