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

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

Восстановить пароль Регистрация
 
Hidan990
1 / 1 / 0
Регистрация: 18.09.2015
Сообщений: 72
08.02.2016, 17:08     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #1
Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива.
Напишите пожалуйста полностью программу с выводом. С++
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2016, 17:08     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива
Посмотрите здесь:

C++ Удалить из массива все элементы превышающие его среднее значение
C++ Среднее арифметическое элементов массива
C++ Сформировать массив X из элементов массива A, значения которых не превышают среднее арифметическое массива A
C++ Удалить все строки, в которых среднее арифметическое элементов массива является двузначным числом
C++ Удалить все строки матрицы, в которых среднее арифметическое элементов является двузначным числом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
feck
7 / 7 / 1
Регистрация: 19.03.2010
Сообщений: 179
08.02.2016, 18:04     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #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 писал с телефона, могут быть опечатки и разметка отсутствовать.
Hidan990
1 / 1 / 0
Регистрация: 18.09.2015
Сообщений: 72
08.02.2016, 19:23  [ТС]     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #3
Спасибо) Но ошибку выдаёт в предпоследней строке. Посмотри пожалуйста правильно я разметил?
Миниатюры
Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива  
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
08.02.2016, 21:33     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #4
Цитата Сообщение от Hidan990 Посмотреть сообщение
ошибку выдаёт в предпоследней строке.
Функция std::system объявлена в <cstdlib> . Добавьте
C++
1
#include <cstdlib>
Добавлено через 1 минуту
И надо указывать тип возращаемого значения функции:
C++
1
int main()
Hidan990
1 / 1 / 0
Регистрация: 18.09.2015
Сообщений: 72
08.02.2016, 22:08  [ТС]     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #5
Спасибо а куда массив вводить?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
08.02.2016, 22:17     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #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
Hidan990
1 / 1 / 0
Регистрация: 18.09.2015
Сообщений: 72
09.02.2016, 21:11  [ТС]     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #7
Спасибо но не работает программа, везде ошибки указывает
Констатнин
21 / 21 / 11
Регистрация: 11.09.2014
Сообщений: 59
Завершенные тесты: 1
09.02.2016, 23:29     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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;
    }
 
}
feck
7 / 7 / 1
Регистрация: 19.03.2010
Сообщений: 179
10.02.2016, 10:23     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #9
Hidan990, ошибку выдавал в предпоследней строке поскольку ты не подключил библиотеку #include<windows>, которая нужна для этой функции.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,899
Записей в блоге: 2
Завершенные тесты: 1
10.02.2016, 14:57     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #10
feck, <cstdlib>
Hidan990
1 / 1 / 0
Регистрация: 18.09.2015
Сообщений: 72
11.02.2016, 13:44  [ТС]     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #11
Большое спасибо, программа выполняется, но она не удаляет числа( по условию), а лишь присваивает им значение последнего элемента массива, можете сделать так чтобы удалялись числа, превышающие ср. арифм. С меня спасибки.
Констатнин
21 / 21 / 11
Регистрация: 11.09.2014
Сообщений: 59
Завершенные тесты: 1
11.02.2016, 14:11     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #12
т.е. удалять?
Дан массив: 1, 2, 99, 3, 4
Ср.ар = 21.8
Вывод: 1, 2, NULL, 3, 4
так?
или же, вывод: 1, 2, 3, 4.
Присваивание - это и есть способ удаления элементов массива из него
feck
7 / 7 / 1
Регистрация: 19.03.2010
Сообщений: 179
12.02.2016, 10:50     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #13
Hidan990, может, тогда тебе создавать вектор, а не массив?
Hidan990
1 / 1 / 0
Регистрация: 18.09.2015
Сообщений: 72
12.02.2016, 18:09  [ТС]     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #14
Дан массив: 1, 2, 99, 3, 4
Ср.ар = 21.8
или же, вывод: 1, 2, 3, 4
Так если можно, но если не получится то и NULL подойдёт
Hidan990
1 / 1 / 0
Регистрация: 18.09.2015
Сообщений: 72
14.02.2016, 23:54  [ТС]     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #15
Помогите плиз
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2016, 00:39     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива
Еще ссылки по теме:

Найти среднее арифметическое элементов массива, и количество чисел внутри массива, не превышающих найденное C++
C++ Удалить все простые числа и найти среднее арифметическое до и после удаления простых чисел
Найти среднее арифметическое элементов массива, и обнулить все элементы, меньшие найденного значения C++

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
15.02.2016, 00:39     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива #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;   
}
Yandex
Объявления
15.02.2016, 00:39     Из вещественного массива X удалить все числа, превышающие среднее арифметическое элементов массива
Ответ Создать тему
Опции темы

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