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

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

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

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

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

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

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

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

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

В прямоугольной матрице заменить каждый нулевой элемент на среднее арифметическое строки - C++
В прямоугольной матрице заменить каждый нулевой элемент на среднее арифметическое строки, в которой находится нулевой элемент. если таковых...

Найти наименьший элемент 3-го столбца, заменить его на среднее арифметическое - C++
Матрица А(5,3) задать по формуле A=-cos(-4,3i-j). Создать новый одномерный массив, каждый элемент которого равен среднему арифметическому...

Двумерный массив (каждый элемент массива разделить на среднее арифметическое этих элементов) - C++
Задан массив действительных чисел А(n). Необходимо каждый элемент массива разделить на среднее арифметическое этих элементов. На печать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
miriganua
131 / 102 / 4
Регистрация: 05.02.2012
Сообщений: 241
04.03.2012, 13:20 #2
А элементы по краям?
0
sandye51
программист С++
684 / 586 / 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;
}
0
valeriikozlov
Эксперт C++
4670 / 2496 / 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] или старого?
0
sandye51
программист С++
684 / 586 / 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;
}
0
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;
}
Предположил, что элементы по краям заменяются на среднее арифметическое этого элемента и его одного соседа.
0
Ejevikka
0 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 38
04.03.2012, 15:26  [ТС] #7
он преобразует только первый и последний, а остальные остаются без изменения.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2012, 15:26
Привет! Вот еще темы с ответами:

Сформировать массив каждый элемент которого это среднее арифметическое элементов исходного массива - C++
дан массив действительных чисел a размерности n (вводится с клавиатуры) сформировать массив b каждый элемент которого b - среднее...

Каждый элемент массива заменить остатком от деления элемента на 7 - C++
Задание: Ввести двумерный массив. Каждый элемент, стоящий в мас-сиве на позиции с четной суммой индексов заменить остатком от деления этого...

Заменить каждый неположительный элемент массива Х абсолютной величиной элемента массива Y с тем же индексом - C++
Добрый день. Нужно решить задачку: Заменить каждый неположительный элемент массива Х абсолютной величиной имеющего тот же номер элемента...

Заменить каждый элемент массива произведением его индексов - C++
Пожалуйста,кто-нибудь помогите с задачами по C++ 1)Дана прямоугольная таблица, которая содержит не более 10 строк и не более 10...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.03.2012, 15:26
Ответ Создать тему
Опции темы

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