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

Нахождение среднего арифметического без переполнения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ошибка в коде http://www.cyberforum.ru/cpp-beginners/thread553548.html
//--------------------------------------------------------------------------- #include <stdio.h> #include <conio.h> //--------------------------------------------------------------------------- int main() { FILE *f; int i,n,d; f=fopen("out.txt","w");
C++ выход из программы как выйти досрочно из программы если я например нахажусь в функции а мне сразу надо выйти.return не поможет. http://www.cyberforum.ru/cpp-beginners/thread553546.html
OpenGL и материалы C++
Здравствуйте. Есть программа: #include <GL/glut.h> static int kv= 1; static int kd = 1; void reshape(int w, int h) { glViewport(0, 0, w, h);
Исправить класс сокращения дроби C++
класс реализует сокращение дроби , но он не работает выводит теже числа помогите может сам алгоритм неправильный , или ещё что то #include <cstdlib> #include <iostream> using namespace std; class rational { private: int a,b;
C++ исправьте код http://www.cyberforum.ru/cpp-beginners/thread553440.html
#include <cstdlib> #include <iostream> using namespace std; class rational { private: int a,b; public:
C++ Определить тип соединения сопротивлений - последовательное или параллельное Написать программу, выводящую на экран сопротивление участка электрической цепи, состоящей из двух сопротивлений. Основная программа запрашивает значения сопротивлений и тип соединения (1-последовательное, 2-параллельное). Вычисление и вывод на экран реализовать в виде функции. borland C++ подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.04.2012, 17:23     Нахождение среднего арифметического без переполнения
Цитата Сообщение от vampik Посмотреть сообщение
Задача найти среднее арифметическое целых чисел (int).
Если просто складывать их и потом делить на количество происходит переполнение...
может кто подскажет алгоритм как это осуществить без переполнения а то я никак допереть не могу...
А сколько у тебя целых, какого они типа и какого реального диапазона? Если signed showt int складывать через преобразование в signed long int, то переполнение гарантировано не наступит при сложении 65535-ти слагаемых, так как удвоение разрядности расширяет диапазон квадратично, а удвоение диапазона происходит при повышении разрядности всегда на 1 бит. Мало? Эйси. Сложи по частям, каждую из сумм раздели, а потом найди средневзвешенное от этих средних. У тебя уже signed long int? Ну тогда складывай в __int64 (он же hyper), влезет больше 4-х миллиардов слагаемых. Уже hyper? Создай 128-ми битный тип, операторы для его сложения и деления и приведения hyper к нему и работай в этом типе.
 
Текущее время: 14:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru