Задача:
В массиве C(m) заменить каждый третий элемент полусуммой двух предыдущих, а стоящий перед ним — полусуммой соседних с ним элементов.
Тест:
Количество элементов | Элементы | Результат |
3 | 5 9 1 | 5 3 7 |
6 | 8 7 6 9 4 0 | 8 7 7,5 9 4,5 6,5 |
9 | 2 5 7 3 6 9 4 6 | 2 4,5 3,5 3 6 4,5 4 5,5 5 |
Программа:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <iostream> using namespace std; int main() { int n; cin >> n; double a[n]; for(int i = 0; i < n ; ++i){ cin >> a[i]; } if(n >= 3){ for(int i = 2; i < n; i+=3){ double tmp = a[i - 1]; a[i - 1] = (a[i] + a[i - 2])/2; a[i] = (tmp + a[i - 2])/2; } for(int i = 0; i < n ; ++i){ cout << a[i] <<((i == n - 1)? "\n" : " "); } } return 0; } |
- Задаем массив;
- Выбираем числа кратные трем;
- Меняем каждый третий элемент начиная со второго;
- Находим полусумму двух предыдущих элементов;
- Берем число стоящее перед числом кратным трем;
- Заменяем его на полусумму стоящих рядом элементов.
Ссылка на программу
Похоже всё правильно. Принято