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

Среднее элементов массива - C++

Восстановить пароль Регистрация
 
Suger
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 37
28.11.2012, 20:24     Среднее элементов массива #1
Смысл задачи таков: дан массив. вывести новый массив без повторяющихся элементов и посчитать среднее. Данный код выводит только массив а среднее не могу найти.
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
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <conio.h>
 
int main ()
{
    int p[50];
    int i, n, j;
    int count=1;      // счётчик не повторяющихся символов
    float   res;
 
    printf("\nEnten number of elements: ");
    scanf("%u",&n);
    printf("\nEnter elements: ");
    for (i=0; i<n; i++)
        scanf("%u",&p[i]);
 
    int temp=p[0];  // певый символ исходного массива будет маркером
    for (i=1; i<n; i++)  // перебор всего массива без первого
    {
        if(p[i]!=temp)     // если символ не равен маркеру
        {
            for (j=i+1; j<n; j++)  // перебор от следующего за рассмотр. символом
                if(p[i]==p[j])     // если символы совпали
                    p[j]=temp;       // маркируем повторяющиеся
            count++;            // увеличиваем счётчик
        }
    }
    printf("\n Test: ");
    for (i=0; i<n; i++) 
    {
        printf(" %i", p[i]);
        // должны получить следующее
        // был массив: 1 2 3 4 5 5 5 3 3 ПРИМЕР!!!
        // стал      : 1 2 3 4 5 1 1 1 1 
    }
 
 
    printf("\n");
    count=0;
    // теперь удаляем все маркированные элементы
    for (i=1; i<n; i++) 
    {
        if (p[i]!=p[0])     p[++count]=p[i];
    }
 
 
    printf("\n");
  // итого
    for (i=0; i<=count; i++) 
    {
        printf(" %i", p[i]);
    }
    getch();
    return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2012, 20:24     Среднее элементов массива
Посмотрите здесь:

C++ среднее арифметическое элементов массива без учета минимального и максимального элементов массива
C++ Сформировать массив X из элементов массива A, значения которых не превышают среднее арифметическое массива A
2.1 Написать программу, которая вычисляет среднее арифметическое элементов массива без учета минимального и максимального элементов массива. Организов C++
C++ Среднее арифметическое положительных элементов массива, произведение и кол-во отрицательных элементов
C++ Вычислить среднее арифметическое элементов массива без учета минимального и максимального элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
28.11.2012, 20:41     Среднее элементов массива #2
Цитата Сообщение от Suger Посмотреть сообщение
посчитать среднее
арифметическое?
Suger
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 37
28.11.2012, 20:43  [ТС]     Среднее элементов массива #3
Цитата Сообщение от SeregaC++ Посмотреть сообщение
арифметическое?
совершенно верно
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
28.11.2012, 20:47     Среднее элементов массива #4
добавьте в цикл
C++
1
sum += p[i];
где sum это int sum = 0;

а уже после цикла.
что-то типа такого:

C++
1
cout << "Res: " << (double)sum / i;
Suger
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 37
28.11.2012, 20:51  [ТС]     Среднее элементов массива #5
не помогло
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
28.11.2012, 21:02     Среднее элементов массива #6
C
1
2
3
4
5
6
7
    int summa = 0;
    for (i=0; i<=count; i++) 
    {
        printf(" %i", p[i]);
        summa += p[i];
    }
    printf("\n Average: %i", (summa / n));
Ваш последний цикл
Suger
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 37
28.11.2012, 21:07  [ТС]     Среднее элементов массива #7
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
C
1
2
3
4
5
6
7
    int summa = 0;
    for (i=0; i<=count; i++) 
    {
        printf(" %i", p[i]);
        summa += p[i];
    }
    printf("\n Average: %i", (summa / n));
Ваш последний цикл
немного неправильно: когда мы делим сумму на число n, то надо исключить повторные числа. Т.е. ввожу 12321
выводит 123, а среднее Sum/(n-2). Именно этот момент я и не смог реализовать(
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
28.11.2012, 21:10     Среднее элементов массива #8
Suger, вообще, последний цикл выводит массив без повторяющихся элементов. там и считается сумма.
там только не summa / n, а summa / count. ошибся
Suger
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 37
28.11.2012, 21:15  [ТС]     Среднее элементов массива #9
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
Suger, вообще, последний цикл выводит массив без повторяющихся элементов. там и считается сумма.
там только не summa / n, а summa / count. ошибся
Спасибо) Я это знаю. Просто в общем картину описал. сейчас проверю)

Добавлено через 4 минуты
что решает не верно. все тот же пример 12321. 1+2+3=6/3=2 но выдает 3.
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
28.11.2012, 21:33     Среднее элементов массива #10
ошибся...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2012, 22:13     Среднее элементов массива
Еще ссылки по теме:

C++ Найти среднее арифметическое элементов массива, сравнить два массива поэлементно
Найти среднее арифметическое целых частей элементов числового массива из 30 элементов C++
Подсчитать число элементов массива A[n], превосходящих среднее геометрическое этого массива C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Suger
1 / 1 / 0
Регистрация: 20.12.2011
Сообщений: 37
28.11.2012, 22:13  [ТС]     Среднее элементов массива #11
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
тут сделайте либо i = 1; i <= count;... либо i = 0; i < count;
C++
1
int count=1;
это верно?

Добавлено через 29 минут
ну как есть соображения по поводу этой проблемы?

Добавлено через 7 минут
а можно ли решить эту задачу еще как нибудь? Я думал сравнить все элементы массива и которые не повторяются занести в другой массив и там уже найти среднее... Но меня снова подкачала реализация кода. не могу задать условие так чтобы массив заносился в другой(и просто занести в другой массив не умею в с++)
Yandex
Объявления
28.11.2012, 22:13     Среднее элементов массива
Ответ Создать тему
Опции темы

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