Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Bohdan6
0 / 0 / 1
Регистрация: 01.02.2013
Сообщений: 48
1

Заменить элементы массива со значениями в заданном интервале на среднее арифметическое значение массива

01.04.2016, 14:44. Просмотров 817. Ответов 5
Метки нет (Все метки)

В одномерном массиве A (n) заменить элементы меньше заданного K и больше
от заданного L на среднее арифметическое значение массива, где 0 <= n <= 45 и K> L.

Ввод-вывод массива выполнить в функции main, а обработку в отдельной функции.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2016, 14:44
Ответы с готовыми решениями:

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

Заменить элементы массива,стоящие на нечетных позициях, на среднее арифметическое массива
Заменить элементы массива,стоящие на нечетных позициях, на среднее...

Определить минимальный элемент массива со значениями в заданном интервале
Задан одномерный массив A(N). Определить минимальный из элементов, которые...

Заменить все элементы массива, находящиеся в интервале (L, R), на наибольший элемент массива
заменить все элементы массива , находящиеся в интервале (L,R), на наибольший...

Найти элементы массива, со значениями в интервале от 1.5 min элемента до 0.5 max элемента массива
Вывести на экран элементы и индексы элементов, значения которых лежат в...

5
TimeTwo
72 / 72 / 97
Регистрация: 29.11.2009
Сообщений: 329
01.04.2016, 14:53 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
#include <iostream>
#include <iomanip>
#include <cstdlib>
 
int main (void){
    int a[45];
    int sum=0;
    for (int i = 0; i < 45;i++) {
      a[i] = -10 + rand () % 20;
      std::cout<<a[i]<<" ";
      sum++;
    }
    sum=sum/45
    int k,l;
    std::cin>>k;
    std::cin>>l;
    for (int i = 0; i < 20;i++) {
        if((a[i]<k)||(a[i]>l)){
            a[i] = sum;
        }
    }
    for (int i = 0; i < 20;i++) {
    std::cout << a[i]<<" ";
    }
    return 0;
}
Bohdan6, по отдельным функциям, и динамический массив как нибудь сами ...
0
Olej
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
01.04.2016, 14:55 3
Цитата Сообщение от TimeTwo Посмотреть сообщение
26 }
Муторно это...
C++
1
2
3
4
5
double A[] = { /* ... */ };
int n = sizeof( A ) / sizeof( A[ 0 ] );
double mean = accumulate( A, A + n, 0. ) / n;
for( auto &a : A )
   if( a < K || a > L ) a = mean;
0
TimeTwo
01.04.2016, 15:06
  #4

Не по теме:

Olej, проблема лишь в том, что когда человек придет сдавать преподавателю ваш код, все станет ясно... сдающему не понравится

0
Olej
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
01.04.2016, 18:39 5
Цитата Сообщение от TimeTwo Посмотреть сообщение
когда человек придет сдавать преподавателю ваш код, все станет ясно... сдающему не понравится
Так мы показываем возможности C++ в коде и стимулируем сдающего хотя бы обратить внимание на незнакомые ему конструкции?
Или играем в песочнице в "доктора и больного" и прикидываем что кому понравится?
0
-ДоМоВоЙ-
147 / 146 / 124
Регистрация: 19.01.2016
Сообщений: 567
Записей в блоге: 1
Завершенные тесты: 1
03.04.2016, 16:08 6
Лучший ответ Сообщение было отмечено Bohdan6 как решение

Решение

Bohdan6, Вот держите...
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
 
void zam(int *arr,int sum,int n);
 
int main (void){
    setlocale(LC_ALL,"Russian");
    int n;
    go:std :: cout<<"\nВведите размер массива: ";
    std :: cin>>n;
    if (n<=0 || n>45)
    {std :: cout<<"Недопустимый размер массива!";goto go;}
    int *a=new int[n];
    double sum=0.0;
    for (int i = 0; i < n;i++) {
      a[i] =rand () % 10;
      std::cout<<a[i]<<" ";
      sum+=a[i];
    }
    sum/=n;
 
    zam(a,sum,n);
 
    for (int i = 0; i < n;i++) {
    std::cout << a[i]<<" ";
    }
    delete [] a;
    system("pause");
    return 0;
}
void zam(int *arr,int sum,int n)
{
    int k,l;
    std :: cout<<"\nВведите 1 число: ";
    std::cin>>k;
    std :: cout<<"\nВведите 2 число: ";
    std::cin>>l;
    for (int i = 0; i < n;i++) {
        if((i<k)||(i>l)){
            arr[i] = sum;
        }
    }
};
TimeTwo,
Цитата Сообщение от TimeTwo Посмотреть сообщение
sum++;
Это подсчет чего???
Цитата Сообщение от TimeTwo Посмотреть сообщение
sum=sum/45
И что вы тут тогда считаете?
Цитата Сообщение от TimeTwo Посмотреть сообщение
for (int i = 0; i < 20;i++) {
if((a[i]<k)||(a[i]>l)){
a[i] = sum;
}
}
ваш цикл с условием, я не смог понять
1
03.04.2016, 16:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2016, 16:08

Подсчитать количество элементов массива, значение которых не превышает среднее арифметическое всего массива
Создать одномерный вещественный массив. Подсчитать количество его элементов,...

Удалить из массива все элементы, модуль которых находится в заданном интервале
Удалить из массива все элементы, модуль которых находится в интервале ....

Вычислить среднее арифметическое всех неотрицательных значений функции в заданном интервале
#include &lt;math.h&gt; #include &lt;stdio.h&gt; #define A -5 #define B 5 #define H 0.2...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru