Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
2 / 2 / 0
Регистрация: 18.09.2015
Сообщений: 72
1

Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива

08.02.2016, 17:08. Показов 2347. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива.
Напишите пожалуйста полностью программу с выводом. С++
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2016, 17:08
Ответы с готовыми решениями:

Из целочисленного массива удалить все числа, превышающие среднее арифметическое простых элементов массива
Из целочисленного массива X удалить все числа, превышающие среднее арифметическое простых элементов...

Удалить из массива все элементы превышающие его среднее значение
1) Сформировать одномерный массив целых чисел, используя датчик случайных чисел. 2) Распечатать...

Файлы: Найти среднее арифметическое его компонент и удалить все компоненты, превышающие среднее значение
Дан файл вещественных чисел. Найти среднее арифметическое его компонент и удалить все компоненты,...

Удалить из массива все элементы, превышающие его среднее значение более, чем на 10%
Сформировать одномерный массив целых чисел используя ДСЧ. Распечатать получившийся массив....

15
7 / 7 / 3
Регистрация: 19.03.2010
Сообщений: 182
08.02.2016, 18:04 2
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
#include <iostream>
using namespace std;
main(){
 
int n;
cin >>n;
double array[n];
double sum=0.;
int counter=0;
for (int i=0; i<n;++i)
{
    cin >> array[i];
    sum=sum+array[i];
}
sum=sum\n;
for (int i=n-1;i>=0;--i)
{
   if(array[i]>sum)
        for (int j=i;j<n-1;++j)
             {
                    array[j]=array[j+1]; 
                     ++counter;
              }        
}
for (int i=0; i<n-counter;++i)
    cout <<array[i]<<"  ";
system("pause");
}
PS писал с телефона, могут быть опечатки и разметка отсутствовать.
1
2 / 2 / 0
Регистрация: 18.09.2015
Сообщений: 72
08.02.2016, 19:23  [ТС] 3
Спасибо) Но ошибку выдаёт в предпоследней строке. Посмотри пожалуйста правильно я разметил?
Миниатюры
Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива  
0
What a waste!
1608 / 1300 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
08.02.2016, 21:33 4
Цитата Сообщение от Hidan990 Посмотреть сообщение
ошибку выдаёт в предпоследней строке.
Функция std::system объявлена в <cstdlib> . Добавьте
C++
1
#include <cstdlib>
Добавлено через 1 минуту
И надо указывать тип возращаемого значения функции:
C++
1
int main()
0
2 / 2 / 0
Регистрация: 18.09.2015
Сообщений: 72
08.02.2016, 22:08  [ТС] 5
Спасибо а куда массив вводить?
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
08.02.2016, 22:17 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
 
int main()
{
    std::vector<double> vec {3.6, 8.4, 4.0, 7.1, 2.4, 4.4} ;
    double mid = mid=std::accumulate(vec.begin(), vec.end(), 0.0)/vec.size() ;
    vec.erase(
        std::remove_if (
            vec.begin(), 
            vec.end(), 
            [mid](auto val)
                {
                    return val>mid;
                }
        ), 
        vec.end()) ;
    for(auto e:vec)
        std::cout << e << ' ' ;
}
http://rextester.com/YZE43263
1
2 / 2 / 0
Регистрация: 18.09.2015
Сообщений: 72
09.02.2016, 21:11  [ТС] 7
Спасибо но не работает программа, везде ошибки указывает
0
27 / 27 / 37
Регистрация: 11.09.2014
Сообщений: 68
09.02.2016, 23:29 8
Лучший ответ Сообщение было отмечено Hidan990 как решение

Решение

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
#include <iostream>
using namespace std;
void search(int* arr, int size) {
    double sum, sr;
    int x = 0;
    // поиск среднего арифметического
    for (int i = 0; i < size;  i++) {
        sum += arr[i];
    }
    sr = (sum) / (size);
    cout << "Среднее арифметическое элементов массива: " << sr << endl;
    
    //удаление
    for (int i = size - 1; i >= 0; --i) {
        if (arr[i] > sr) {
            for (int j = i; j < size-1; ++j) {
                arr[j] = arr[j+1];
                ++x;
            }
        }
    }
}
 
int main() {
    int size;
    int arr[100];
    cout << "Введите длину массива: ";
    cin >> size;
    cout << "Введите элементы массива: " << endl;
    for(int i = 0; i<size; i++) {
        cout << "       [" << i << "] - ";
        cin >> arr[i];
    }
    search(arr,size);
    cout << "Преобразованный массив: " << endl;
    for(int i = 0; i<size; i++) {
        cout << "       [" << i << "] - ";
        cout << arr[i] << endl;
    }
 
}
1
7 / 7 / 3
Регистрация: 19.03.2010
Сообщений: 182
10.02.2016, 10:23 9
Hidan990, ошибку выдавал в предпоследней строке поскольку ты не подключил библиотеку #include<windows>, которая нужна для этой функции.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
10.02.2016, 14:57 10
feck, <cstdlib>
0
2 / 2 / 0
Регистрация: 18.09.2015
Сообщений: 72
11.02.2016, 13:44  [ТС] 11
Большое спасибо, программа выполняется, но она не удаляет числа( по условию), а лишь присваивает им значение последнего элемента массива, можете сделать так чтобы удалялись числа, превышающие ср. арифм. С меня спасибки.
0
27 / 27 / 37
Регистрация: 11.09.2014
Сообщений: 68
11.02.2016, 14:11 12
т.е. удалять?
Дан массив: 1, 2, 99, 3, 4
Ср.ар = 21.8
Вывод: 1, 2, NULL, 3, 4
так?
или же, вывод: 1, 2, 3, 4.
Присваивание - это и есть способ удаления элементов массива из него
0
7 / 7 / 3
Регистрация: 19.03.2010
Сообщений: 182
12.02.2016, 10:50 13
Hidan990, может, тогда тебе создавать вектор, а не массив?
0
2 / 2 / 0
Регистрация: 18.09.2015
Сообщений: 72
12.02.2016, 18:09  [ТС] 14
Дан массив: 1, 2, 99, 3, 4
Ср.ар = 21.8
или же, вывод: 1, 2, 3, 4
Так если можно, но если не получится то и NULL подойдёт
0
2 / 2 / 0
Регистрация: 18.09.2015
Сообщений: 72
14.02.2016, 23:54  [ТС] 15
Помогите плиз
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
15.02.2016, 00:39 16
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
#include <iostream>
 
double average(const double* a, int n)
{
    double sum = 0;
    for (int i = 0; i < n; ++i) 
        sum += a[i];
    return sum / n;
}
 
int remove_if_greater(double* a, int n, double x)
{
    int j = 0;
    for (int i = 0; i < n; ++i)    
        if (a[i] <= x) a[j++] = a[i];                     
    return j;
}
 
int main()
{    
    double a[5];
    int n = sizeof(a) / sizeof(double);
 
    for (int i = 0; i < n; ++i) 
        std::cin >> a[i];    
 
    double x = average(a, n);
 
    std::cout << "average\n" << x << '\n';
    n = remove_if_greater(a, n, x);
    std::cout << "result array\n";
    for (int i = 0; i < n; ++i) 
        std::cout << a[i] << ' ';
    std::cout << std::endl;   
}
0
15.02.2016, 00:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2016, 00:39
Помогаю со студенческими работами здесь

Удалить все строки, в которых среднее арифметическое элементов массива является двузначным числом
2) В двумерном массиве, элементы которого - целые числа, произвести следующие действия:Удалить все...

Найти среднее арифметическое значение элементов вещественного массива
Привет ребята. Помогите написать код. Я вот только начал знакомство с программированием и еще пока...

Вычислить среднее арифметическое отрицательных элементов одномерного вещественного массива
Найти среднее арифметическое отрицательных элементов одномерного вещественного массива(если...

Найти среднее арифметическое отрицательных элементов одномерного вещественного массива
Выдаёт арифметическое переполнение, что сделать то? само условие: Найти среднее арифметическое...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru