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

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

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

Author24 — интернет-сервис помощи студентам
Дан массив размера N. Заменить каждый элемент массива на среднее арифметическое этого элемента и его соседей.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2012, 13:07
Ответы с готовыми решениями:

Заменить каждый элемент массива на среднее арифметическое этого элемента и его соседей
Дан массив размера N. Заменить каждый элемент массива на среднее арифметическое этого элемента и...

Заменить каждый элемент массива на среднее арифметическое самого элемента и его соседей
помогите решить пожалуйста: В заданном одномерном массиве размером N заменить каждый элемент на...

Заменить каждый элемент массива на среднее арифметическое его и его соседей слева и справа
При решении использовать масив в файле)

Заменить каждый элемент массива на среднее арифметическое его и его соседей слева и справа
Помогите пожалуйста. Нужно Объявить массив целых чисел и заполнить его случайными значениями....

6
136 / 107 / 61
Регистрация: 05.02.2012
Сообщений: 241
04.03.2012, 13:20 2
А элементы по краям?
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
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;
}
0
Эксперт С++
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
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] или старого?
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
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;
}
0
136 / 107 / 61
Регистрация: 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;
}
Предположил, что элементы по краям заменяются на среднее арифметическое этого элемента и его одного соседа.
0
0 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 38
04.03.2012, 15:26  [ТС] 7
он преобразует только первый и последний, а остальные остаются без изменения.
0
04.03.2012, 15:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2012, 15:26
Помогаю со студенческими работами здесь

Заменить каждый элемент на среднее арифметическое его и его соседей слева и справа
Помогите пожалуйста сделать лабораторную работу. Нужно объявить массив целых чисел и заполнить его...

Заменить каждый элемент массива на среднее арифметическое элемента и его соседей
Здравствуйте. Помогите пожалуйста решить задачи какие сможете, завтра зачёт, а я никак не могу с...

Заменить каждый элемент массива на среднее арифметическое этого элемента и его соседей
Ребята, нужна помощь в решении небольшой задачки на C#. Дан массив размера N. Заменить каждый...

Заменить каждый элемент массива на среднее арифметическое этого элемента и его соседей
Здравствуйте. Помогите перевести код в StringGrid Заменить каждый элемент массива на среднее...


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

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