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

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

Войти
Регистрация
Восстановить пароль
 
 
tron737
8 / 8 / 4
Регистрация: 29.12.2013
Сообщений: 27
#1

Из каждого элемента массива, начиная со второго, вычесть все остальные элементы - C++

12.07.2014, 20:40. Просмотров 893. Ответов 20
Метки нет (Все метки)

Дан массив, из каждого элемента, начиная со второго, нужно вычесть все остальные элементы.
вот пример:
1 2 3 4 5
(2 - 3 - 4 - 5 - 1), (3 - 4 - 5 - 1 -2), (4 - 5 - 1- 2 - 3), (5 -1 -2 -3 -4)
в результате получим:
-11 -9 -7 -5

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

Увеличить все элементы этого массива начиная с первого положительного элемента в два раза. - C++
Помогите решить в Borland c++ Если можно еще блок-схему Задан массив целых чисел. Увеличить все элементы этого массива начиная с...

все элементы побочной диагонали квадратного массива,начиная с элемента,расположенного в правом верхнем углу. - C++
Вывести на экран (в одну строку): а)все элементы побочной диагонали квадратного массива,начиная с элемента,расположенного в правом...

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

В массиве вычислить среднее арифметическое и вычесть его из каждого элемента массива. - C++
Файлы. Работа с одномерными массивами Постановка задачи 1 Прочитать из файла два одномерных массива разной длины. Для каждого из них...

Вставить два элемента по 1000, начиная с четвертого элемента исходного массива, сдвигая его элементы - C++
Помогите с созданием программы, которая выполняет следующие действия: a) одномерный массив из 10 элементов целого типа в диапазоне ; b)...

Все отрицательные элементы массива перенести в начало, а все остальные - в конец - C++
помогите пожалуйста))) преобразовать массив по следующему правилу (воспользовавшись массивом у как вспомогательным):все отрицательные...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
tron737
8 / 8 / 4
Регистрация: 29.12.2013
Сообщений: 27
13.07.2014, 12:06  [ТС] #16
Psilon, смотри, у тебя даже из первого элемента вычитается
0
Psilon
Master of Orion
Эксперт .NET
5891 / 4788 / 634
Регистрация: 10.07.2011
Сообщений: 14,406
Записей в блоге: 5
Завершенные тесты: 4
13.07.2014, 12:30 #17
tron737, невелика беда, можно чуть-чуть изменить
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 <iterator>
#include <vector>
#include <numeric>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int inarray[] = { 1, 2, 3, 4, 5 };
    vector<int> invec(inarray, inarray + sizeof(inarray) / sizeof(int));
    int sum = accumulate(invec.begin(), invec.end(), 0);
    
    vector<int> result(inarray+1, inarray + sizeof(inarray) / sizeof(int));
    for_each(result.begin(), result.end(), [sum](int & x) {x -= sum - x; });
    for  (int res : result)
    {
        cout << res << " ";
    }
    return 0;
}
0
tron737
8 / 8 / 4
Регистрация: 29.12.2013
Сообщений: 27
13.07.2014, 12:33  [ТС] #18
Psilon, я понимаю, что невелика беда. но что-то все равно не так считает, те не под мою задачу
0
Psilon
Master of Orion
Эксперт .NET
5891 / 4788 / 634
Регистрация: 10.07.2011
Сообщений: 14,406
Записей в блоге: 5
Завершенные тесты: 4
13.07.2014, 12:35 #19
tron737,
в результате получим:
-11 -9 -7 -5
вы писали?
смотрим результат:
http://ideone.com/JYUI1m

0
tron737
8 / 8 / 4
Регистрация: 29.12.2013
Сообщений: 27
13.07.2014, 12:40  [ТС] #20
Psilon, ладно спасибо, буду думать.
0
Psilon
Master of Orion
Эксперт .NET
5891 / 4788 / 634
Регистрация: 10.07.2011
Сообщений: 14,406
Записей в блоге: 5
Завершенные тесты: 4
13.07.2014, 12:41 #21
tron737, если вопрос про 10%, то просто:
C++
1
for_each(result.begin(), result.end(), [sum](double & x) {x -= (sum - x)*0.1; });
правда чтобы нормальный эффект был, везде нужно int на double поменять, иначе дробная часть отвалится.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2014, 12:41
Привет! Вот еще темы с ответами:

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

Найти минимальный элемент матрицы, и, начиная с этого элемента, обнулить остальные - C++
найти минимальный элемент матрицы, и начиная с этого элемента, обнулить остальные. Отсортировать первую строку.

Вычесть из каждого элемента последовательности последний - C++
Даны натурально число n, действительные числа x1, ... , xn (n&gt;=2). Получить последовательность x1 - xn, x2 - xn, ... , xn-1 - xn. Нужно...

Отсортировать все элементы массива по убыванию начиная с отрицательного - C++
1.Отсортировать все элементы массива по убыванию начиная с отрицательного(элемент начала сортировки) примерно такое получится должно: ...


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

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

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