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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ejevikka
0 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 38
#1

Заменить каждый элемент массива на среднее арифметическое элемента и его соседей - C++

04.03.2012, 13:07. Просмотров 892. Ответов 6
Метки нет (Все метки)

Дан массив размера N. Заменить каждый элемент массива на среднее арифметическое этого элемента и его соседей.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 13:07     Заменить каждый элемент массива на среднее арифметическое элемента и его соседей
Посмотрите здесь:

Заменить каждый элемент массива на среднее арифметическое его и его соседей слева и справа C++
C++ Заменить каждый элемент на среднее арифметическое его и его соседей слева и справа
Заменить каждый элемент массива на среднее арифметическое его и его соседей слева и справа C++
C++ В массиве вычислить среднее арифметическое и вычесть его из каждого элемента массива.
C++ Каждый элемент массива, больший 10, заменить на его квадратный корень
C++ Двумерный массив (каждый элемент массива разделить на среднее арифметическое этих элементов)
C++ Каждый элемент массива заменить остатком от деления элемента на 7
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
miriganua
131 / 102 / 4
Регистрация: 05.02.2012
Сообщений: 241
04.03.2012, 13:20     Заменить каждый элемент массива на среднее арифметическое элемента и его соседей #2
А элементы по краям?
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
04.03.2012, 13:30     Заменить каждый элемент массива на среднее арифметическое элемента и его соседей #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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 <cstdlib>
 
int main()
{
    unsigned int size;
    std::cout << "Enter the size of sequence" << std::endl;
    std::cin >> size;
    
    double* vector = new double[size];
    std::cout << "Enter the sequence" << std::endl;
    for (unsigned int i = 0; i < size; ++i)
        std::cin >> vector[i];
    for (unsigned int i = 1; i < (size - 1); ++i)
        vector[i] = (vector[i - 1] + vector[i + 1]) / 2;
    std::cout << "Answer: " << std::endl;
    for (unsigned int i = 0; i < size; ++i)
        std::cout << vector[i] << " ";
    std::cout << std::endl;
    delete[]vector;
    return EXIT_SUCCESS;
}
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
04.03.2012, 13:48     Заменить каждый элемент массива на среднее арифметическое элемента и его соседей #4
sandye51, чуть поправлю:

Цитата Сообщение от sandye51 Посмотреть сообщение
C++
1
vector[i] = (vector[i - 1] + vector[i + 1]) / 2;
заменить на:
C++
1
vector[i] = (vector[i - 1] + vector[i + 1] + vector[i]) / 3;
Самое интересное не это:
Вот например заменили на среднее арифметическое элемент vector[2]. Потом будем высчитывать элемент vector[3]. Вопрос к Ejevikka:
этот элемент нужно высчитывать с учетом нового значения vector[2] или старого?
sandye51
программист С++
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
04.03.2012, 13:51     Заменить каждый элемент массива на среднее арифметическое элемента и его соседей #5
valeriikozlov, тут Вы правы, небрежно прочитал задание)
и менят скорее всего надо без учета новых данных

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
#include <iostream>
#include <cstdlib>
 
int main()
{
    unsigned int size;
    std::cout << "Enter the size of sequence" << std::endl;
    std::cin >> size;
    
    double* vector = new double[size];
    double* result_vector = new double[size];
    std::cout << "Enter the sequence" << std::endl;
    for (unsigned int i = 0; i < size; ++i)
        std::cin >> vector[i];
    result_vector[0] = vector[0];
    result_vector[size - 1] = vector[size - 1];
    for (unsigned int i = 1; i < (size - 1); ++i)
        result_vector[i] = (vector[i - 1] + vector[i + 1] + vector[i]) / 2;
    std::cout << "Answer: " << std::endl;
    std::swap(result_vector, vector);
    for (unsigned int i = 0; i < size; ++i)
        std::cout << vector[i] << " ";
    std::cout << std::endl;
    delete[]vector;
    delete[]result_vector;
    return EXIT_SUCCESS;
}
miriganua
131 / 102 / 4
Регистрация: 05.02.2012
Сообщений: 241
04.03.2012, 13:53     Заменить каждый элемент массива на среднее арифметическое элемента и его соседей #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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>
 
using namespace std;
 
int main()
{
    const int n = 10;
    double initialArray[n] = {2, -1, 5, -3, 0, 5, 6, 9, -1, 8};
    cout << "Array before:" << '\n';
    for (int i = 0; i < n; i++)
    {
        cout << initialArray[i] << "  ";
    }
 
    double tempArray[n];
    tempArray[0] = (initialArray[0] + initialArray[1]) / 2;
    for (int i = 1; i < n - 1; i++)
    {
        tempArray[i] = (initialArray[i - 1] + initialArray[i] + initialArray[i + 1]) / 3;
    }
    tempArray[n - 1] = (initialArray[n - 1] + initialArray[n - 2]) / 2;
    for (int i = 0; i < n; i++)
    {
        initialArray[i] = tempArray[i];
    }
 
    cout << "Array after:" << '\n';
    for (int i = 0; i < n; i++)
    {
        cout << initialArray[i] << "  ";
    }
 
    cout << '\n';
    return 0;
}
Предположил, что элементы по краям заменяются на среднее арифметическое этого элемента и его одного соседа.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2012, 15:26     Заменить каждый элемент массива на среднее арифметическое элемента и его соседей
Еще ссылки по теме:

В прямоугольной матрице заменить каждый нулевой элемент на среднее арифметическое строки C++
C++ Найти наименьший элемент 3-го столбца, заменить его на среднее арифметическое
C++ Сформировать массив каждый элемент которого это среднее арифметическое элементов исходного массива
C++ Заменить каждый неположительный элемент массива Х абсолютной величиной элемента массива Y с тем же индексом
Заменить каждый элемент массива произведением его индексов C++

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

Или воспользуйтесь поиском по форуму:
Ejevikka
0 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 38
04.03.2012, 15:26  [ТС]     Заменить каждый элемент массива на среднее арифметическое элемента и его соседей #7
он преобразует только первый и последний, а остальные остаются без изменения.
Yandex
Объявления
04.03.2012, 15:26     Заменить каждый элемент массива на среднее арифметическое элемента и его соседей
Ответ Создать тему
Опции темы

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