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

Помогите пожалуйста по Одномерному массиву длинных целых чисел!!! - C++

Восстановить пароль Регистрация
 
krasopetka
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 9
15.09.2011, 19:27     Помогите пожалуйста по Одномерному массиву длинных целых чисел!!! #1
Здравствуйте!!! Помогите пожалуйста решение задачи!!!

Одномерный массив длинных целых чисел
Задание №1
Составить программу определения среднего значения для увеличивающегося количества чисел заданного типа.
Исходные значения, для которых рассчитывается среднее, хранятся в массиве. Затем к исходным значениям добавляются от одного и более новых чисел. Для полученного нового ряда чисел рассчитывается новое среднее значение. Процесс ввода новых чисел и расчета среднего может повторяться неограниченное количество раз.
Следует обратить внимание, что расчет среднего для ряда чисел с учетом вновь введенных значений должен выполняться на основе ранее полученного среднего значения.
Каждое рассчитанное среднее значение должно выводиться на экран. Кроме среднего можно выводить общее количество чисел, по которым рассчитывается среднее. Проверить правильность расчета среднего значения любым способом.

Спасибо тем кто откликнулся!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,409
15.09.2011, 20:40     Помогите пожалуйста по Одномерному массиву длинных целых чисел!!! #2
Цитата Сообщение от krasopetka Посмотреть сообщение
Следует обратить внимание, что расчет среднего для ряда чисел с учетом вновь введенных значений должен выполняться на основе ранее полученного среднего значения.
Не знаю как опираться на прошлое среднее значение.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
 
int main()
{
    float val, count = 0, average, sum = 0;
    while (true)
    {
          std::cout<< "Enter value: ";
          std::cin>> val;
          count++;
          sum += val;
          average = sum/count;
          std::cout<< "Average: "<< average<< std::endl
              << "Count: "<< count<< std::endl<< std::endl;
    }
    return 0;
}
Чистый
Автор FAQ
 Аватар для Чистый
2572 / 1379 / 70
Регистрация: 08.09.2011
Сообщений: 3,705
Записей в блоге: 1
16.09.2011, 10:57     Помогите пожалуйста по Одномерному массиву длинных целых чисел!!! #3
вероятнее всего надо запоминать полученное среднее значение, расчитывать среднее значение для введенного числа и результат складывать со средним значением. например
C++
1
2
3
4
5
(3+2+4+5+9)/5=4,6
затем к ним решили добавить число 7 получаем
4,6+7 = 11,6
проверяем, добавляем к каждому элементу массива 7 и находим среднее
(10+9+11+12+16)/5=11,6
-=ЮрА=-
Заблокирован
Автор FAQ
16.09.2011, 11:22     Помогите пожалуйста по Одномерному массиву длинных целых чисел!!! #4
Цитата Сообщение от krasopetka Посмотреть сообщение
оставить программу определения среднего значения для увеличивающегося количества чисел заданного типа.
Исходные значения, для которых рассчитывается среднее, хранятся в массиве. Затем к исходным значениям добавляются от одного и более новых чисел. Для полученного нового ряда чисел рассчитывается новое среднее значение. Процесс ввода новых чисел и расчета среднего может повторяться неограниченное количество раз.
Следует обратить внимание, что расчет среднего для ряда чисел с учетом вновь введенных значений должен выполняться на основе ранее полученного среднего значения.
Каждое рассчитанное среднее значение должно выводиться на экран. Кроме среднего можно выводить общее количество чисел, по которым рассчитывается среднее.
Вот код на Си
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <windows.h>//malloc realloc
#include <stdio.h>
#include <conio.h>
 
int main()
{
    int n,m;
    int * arr = (int *)malloc(sizeof(int));//Первоначальное выделение памяти
    float sredn = 0;
    printf("Enter initial num of elements : ");
    scanf("%d",&n);
    printf("Primary initialization\r\n");
    for(int i = 0; i < n; i++)
    {
        printf("arr[%d] = ",i + 1);
        scanf("%d",&arr[i]);
        sredn += arr[i];
    }
    printf("Average elements value: %f\r\n",(sredn /= n));
    do
    {
        printf("Enter num elements to add in array : ");
        scanf("%d",&m);
        //Увеличивем память на m элементов
        arr= (int *)realloc((void *)arr, (n + m)*sizeof(int));
        printf("Enter new elements\r\n");
        for(i = n; i < n + m; i++)
        {
            printf("\t[Iteration %d]\r\n",i - n + 1);
            printf("arr[%d] = ",i + 1);
            scanf("%d",&arr[i]);
            //Расчёт среднего для каждого добавляемого элемента
            sredn *= i;
            sredn += arr[i];
            sredn /= (i + 1);
            
            printf("Num elements in array : %d\r\n",i + 1);
            printf("Average elements value: %f\r\n",sredn);
        }
 
        printf("Press Y to add elements\r\n");
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
[Результат работы]
Enter initial num of elements : 3
Primary initialization
arr[1] = 1
arr[2] = 2
arr[3] = 4
Average elements value: 2.333333
Enter num elements to add in array : 2
Enter new elements
[Iteration 1]
arr[4] = 5
Num elements in array : 4
Average elements value: 3.000000
[Iteration 2]
arr[5] = 6
Num elements in array : 5
Average elements value: 3.600000
Press Y to add elements
krasopetka
0 / 0 / 0
Регистрация: 15.09.2011
Сообщений: 9
20.09.2011, 05:21  [ТС]     Помогите пожалуйста по Одномерному массиву длинных целых чисел!!! #5
Спасибо вам огромное!!!
Yandex
Объявления
20.09.2011, 05:21     Помогите пожалуйста по Одномерному массиву длинных целых чисел!!!
Ответ Создать тему
Опции темы

Текущее время: 08:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru