#Форум программистов RSS Feed Форум программистов - Общие вопросы C/C++ - RSS Feed Форум программистов [russian_468x60.gif] Главная | Правила форума | Исходники Delphi | Основы Delphi | Блог программистов | Рассылка | Повторная активизация e-mail | Вернуться Форум программистов > C++ программирование > Общие вопросы C/C++ Перезагрузить страницу Вопрос связанный с setprecision и setiosflags. Имя Имя_______ [ ] Запомнить? Пароль __________ Вход Регистрация Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны [rusbanner.gif] Ответ Опции темы Старый 05.10.2011, 01:30 #1 mavol Аватар для mavol Регистрация: 05.10.2011 Сообщений: 5 Репутация: 10 Печаль Вопрос связанный с setprecision и setiosflags. __________________________________________________________________ Доброго времени суток! Я учусь по книге "Дейтел Х., Дейтел П. — Как программировать на C++". Вроде иду по чуть-чуть, но с толком. Подробно разбираю все примеры и функции, но вот у меня появился вопрос, ответ на который я гуглил, но так и не нагуглил. Вот целая программа: Код: //Оценки. #include #include using namespace std; main() { float average; int total, counter, grade; //Исходные значения. counter = 0; total = 0; //Этап обработки. cout << "Введите целое число или -1 для завершения: "; cin >> grade; while (grade != -1) { total = total + grade; counter = counter + 1; cout << "Введите целое число или -1 для завершения: "; cin >> grade; } //Завершающий этап. if (counter != 0) { average = (float) total / counter; cout << "Средний балл: " << setprecision(2) << setiosflags(ios::fixed | ios::showpoint) << average << endl; } else cout << "Оценки не введены!" << endl; return 0; } В завершающем этапе есть две строки: 1-ая строка. Код: average = (float) total / counter; 2-ая строка. Код: cout << "Средний балл: " << setprecision(2) << setiosflags(ios::fixed | ios:: showpoint) << average << endl; Именно они и вызвали у меня сложности и ответы я не нашел. Первая строка как я понял говорит о том, что average будет иметь не только целые, но и запятые (об этом говорит float). Вторая строка для меня мрак. Что такое setprecission и setiosflags(ios::fixed | ios::showpoint) я вообще без понятий. Помогите пожалуйста, если не тяжело. Заранее благодарен! mavol вне форума Ответить с цитированием mavol Посмотреть профиль Найти ещё сообщения от mavol Старый 05.10.2011, 15:03 #2 revaldo666 Форумчанин Регистрация: 24.06.2010 Сообщений: 212 Репутация: 10 По умолчанию __________________________________________________________________ 2-я строка это форматирование выводимого текста на сколько я знаю. к примеру размер шрифта или позиция на экране. в твоей строке досконально не разбирался. revaldo666 вне форума Ответить с цитированием revaldo666 Посмотреть профиль Найти ещё сообщения от revaldo666 Старый 06.10.2011, 06:03 #3 mavol Аватар для mavol Регистрация: 05.10.2011 Сообщений: 5 Репутация: 10 По умолчанию __________________________________________________________________ На сколько я понял, 2-я строка и функции, которые мне в ней не понятны, говорят о кол-ве символов после запятой и какие-то функции связанные с плавающей запятой. Лично я как-то так понял. mavol вне форума Ответить с цитированием mavol Посмотреть профиль Найти ещё сообщения от mavol Старый 06.10.2011, 09:10 #4 An1ka C++,DirectX/OpenGL Форумчанин Регистрация: 09.01.2011 Сообщений: 422 Репутация: 156 По умолчанию __________________________________________________________________ Цитата: Сообщение от mavol Посмотреть сообщение Первая строка как я понял говорит о том, что average будет иметь не только целые, но и запятые (об этом говорит float). В C\C++ оператор деления может выполнять как и обычное деление, так и целочисленное деление. Операция деления целых чисел - это целочисленное деление, по этому используется приведение значения переменной total к типу float. An1ka вне форума Ответить с цитированием An1ka Посмотреть профиль Найти ещё сообщения от An1ka Старый 06.10.2011, 09:44 #5 gamer-25 Пользователь Регистрация: 21.09.2011 Сообщений: 25 Репутация: 17 По умолчанию __________________________________________________________________ setprecision(2) - После запятой будет стоять 2 цифры setiosflags(ios::fixed | ios::showpoint) - Обязательно должна стоять запятая average = (float) total / counter; total и counter - это целые числа average - число с плавающей запятой. Результатом total/counter будет целое, хотя результат толжен быть float Поэтому перед делением преобразовываем к float (float) totla/counter __________________________________________________________________ Последний раз редактировалось gamer-25; 06.10.2011 в 09:50. gamer-25 вне форума Ответить с цитированием gamer-25 Посмотреть профиль Найти ещё сообщения от gamer-25 Ответ « Предыдущая тема | Следующая тема » Опции темы Версия для печати Версия для печати Отправить по электронной почте Отправить по электронной почте Ваши права в разделе Вы не можете создавать новые темы Вы не можете отвечать в темах Вы не можете прикреплять вложения Вы не можете редактировать свои сообщения __________________________________________________________________ BB коды Вкл. Смайлы Вкл. [IMG] код Вкл. HTML код Выкл. __________________________________________________________________ Forum Rules Быстрый переход [ Общие вопросы C/C++______________________] Вперёд Похожие темы Тема Автор Раздел Ответов Последнее сообщение Вопрос связанный с SEO mordrag Javascript и другие клиентские скрипты 2 09.08.2011 19:02 Вопрос , связанный с потерей данных. Rin Общие вопросы Delphi 3 21.05.2010 14:06 Вопрос по setiosflags() и double fs444 Общие вопросы C/C++ 1 25.12.2009 11:37 Еще один вопрос, связанный с БД Sweta Общие вопросы C/C++ 3 09.11.2009 17:10 Вопрос связанный с выводом графики BuT@JL Мультимедиа в Delphi 2 24.10.2009 12:54 11:01. [-- club_________] Обратная связь - Клуб программистов Delphi - Архив - Вверх Powered by vBulletin® Version 3.8.5 Copyright ©2000 - 2012, Jelsoft Enterprises Ltd. [logorussiaon.jpg] последние новости России и в России [webcam.jpg] Любые веб-камеры по лучшим ценам! С доставкой и гарантией. [saletur.jpg] магазин горящих туров более 1000 горящих предложений ежедневно Рейтинг@Mail.ru