Форум программистов, компьютерный форум 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++ подробнее

Показать сообщение отдельно
ProNoooob
72 / 72 / 6
Регистрация: 14.10.2009
Сообщений: 121
20.04.2012, 17:32     Нахождение среднего арифметического без переполнения
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "windows.h"
#include <stdlib.h>
#include <stdio.h>
 
double Hello(unsigned int *begin, unsigned int *end, int size)
{
    if((begin + 1) == end) //конец массива
        return (double)(*begin + *(begin + 1))/size;
    else if(begin + 2 == end) //конец массива, но в конце целых три эелемента
        return (double)(*begin + *(begin + 1) + *(begin + 2))/size;
    else                     // вычисляем потихоньку
        return (double)(*begin + *(begin + 1))/size + (double)Hello(begin + 2, end, size);
}
 
int main()
{
    unsigned int X[1000];
    unsigned int i;
    double result;
 
    srand(GetTickCount());
    for(i = 0; i < 1000; i++)
    {
        X[i] = rand() % 100;
    }
 
    result = Hello(X, &X[999], 1000);
 
    return 0;
}
вроде работает. Простая задачка.

А вообще если есть возможность, то такую математику лучше на лиспе писать.
Большинство его реализаций поддерживают длинную арифметику.
 
Текущее время: 17:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru