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

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

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

Найти суммы пар элементов, равноудаленных от начала и конца массива - C++

02.06.2016, 11:38. Просмотров 201. Ответов 2
Метки нет (Все метки)

Приветствую!
Вот задание из учебника:
1.Прочитайте в вектор набор целых чисел. Вычислите и отобразите сумму каждой пары смежных элементов в векторе.
2.Если количество элементов нечётно, сообщите пользователю от этом и отобразите значение последнего элемента без суммирования.
3.Отобразите программу так, чтобы она оотбразила сумму первого и последнего элементов, затем сумму второго и предпоследнего и т.д.

Первые два вопроса решил самостоятельно. Не знаю насколько правильно, но работает. А на третьем застрял. Дело в том, что нужно решить без итераторов, а с помощью индексирования, т.к. это задание дается до разбора темы с итераторами.

Вот такой код написал для подсчета. Первый вариант через for. Но он ничего не делает вообще. Задумка была в том, чтобы складывать элементы навстречу друг другу. И хотя циклы должны пройти не до середины длины вектора, а один от начала до конца, а второй от конца до начало и это неправильно, но если бы этот код работал, можно было бы его как-то совершенствовать. А он не работает.
Второй вариант пробовал через if. Но этот вообще ошибку выдает.
Подскажите, пожалуйста, где ошибка и как вообще это сделать?
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
#include<iostream>
#include<vector>
using namespace std;
 
int main(){
    int ins;
    vector<int>fvec;
    
    cout<<"Enter memeber of the vector:\n";
    while(cin>>ins)
    fvec.push_back(ins);
    
    cout<<"The elements of this vector are: ";
    for(int i=0; i!=fvec.size(); ++i)
    cout<<fvec[i]<<" ";
    
    for(vector<int>::size_type ind=0; ind!=fvec.size(); ++ind) // здесь перебор от первого индекса до последнего
    for(vector<int>::size_type ind2=fvec.size()-1; ind2=0; --ind2) // здесь перебор от последнего индекса до первого
    cout<<fvec[ind]+fvec[ind2]; // здесь сумма первого и последнего, второго и предпоследнего и т.д.
    
    if(vector<int>::size_type ind<=fvec.size()/2) // здесь попытка пройти до середины вектора и так же сложить элементы
    if(vector<int>::size_type ind2>=fvec.size()/2)
    cout<<fvec[ind]+fvec[ind2];
    
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2016, 11:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти суммы пар элементов, равноудаленных от начала и конца массива (C++):

Массив: Найти пары элементов массива B, равноотстоящих от начала и конца массива и имеющих одинаковые значения - C++
Помогите пожалуйста. Найти номера пары элементов массива B, равноотстоящих от начала и конца массива и имеющих одинаковые значения.

Найти суммы пар элементов вектора, находящихся равно далеко от центра - C++
Прочитайте в вектор набор целых чисел. Отобразите сумму первого и последнего элементов, затем сумму второго и предпоследнего и тд. Если...

Найти число пар соседних элементов массива - C++
Дан двумерный массив. Найти число пар соседних элементов. В качестве соседних элементов расссматривать 1 только элементы расположенные в...

Найти количество пар одинаковых рядом стоящих элементов массива - C++
Найти количество пар одинаковых рядом стоящих элементов массива

Найти число пар соседних элементов массива, являющихся четными числами - C++
Доброго времени суток, помогите пожалуйста решить задачи по C++ 2)Найти число пар соседних элементов массива, являющихся четными...

Найти число пар соседних элементов массива, являющихся четными числами. - C++
Помогите,написать программу,в СИ++,пожалуйста.Найти число пар соседних элементов массива, являющихся четными числами.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Hilarior
18 / 17 / 12
Регистрация: 03.05.2016
Сообщений: 105
Завершенные тесты: 1
02.06.2016, 12:10 #2
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
int main()
{
    setlocale(LC_ALL, "Russian");
 
    int i,j;
    int size;
    int sum;
 
    int mas[17] = {1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1};
    
    vector <int> fvec(mas, mas + 17); // Инициализация вектора, чтобы не вводить в консоли
    size = fvec.size();
 
    for (i = 0; i < size; i++){
        cout << fvec[i] << ' ';
    }
 
 
    i = 0;
    j = size-1;
 
    while (i < j) {
        sum = fvec[i++] + fvec[j--];
        cout << "\nСумма = " << sum;
    }
 
    if (i == j) {
        cout << "\nНечетное кол-во элементов.\nСредний элемент равен " << fvec[i];
    }
 
        cout << endl;
 
    return 0;
}
0
VKVA
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 3
02.06.2016, 12:30  [ТС] #3
Спасибо! Я три дня сидел. А здесь все просто, как и все гениальное Надо усвоить. Опыта нет и знаний не хватает. Учусь. Спасибо, еще раз!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2016, 12:30
Привет! Вот еще темы с ответами:

Функции в с++. Найти сумму элементов массива D, а также суммы квадратов и кубов элементов массива D. - C++
Запутался уже -_- Куда че пихать не могу понять... Дан произвольный массив D размера k. Найти сумму элементов массива D, а также суммы...

Найти суммы четных элементов (элементов с четным номером) массива вещественных чисел A(22) и нечетных элементов - C++
Здравствуйте, дорогие форумчане. Не могли бы вы мне помочь? Мне нужно составить программу с таким условием: &quot;Найти суммы четных...

Массивы: Определить частное от деления суммы положительных элементов массива на модуль суммы отрицательных элементов - C++
Всем привет, учусь в 9-ом классе. Помогите решить 3 задачи, пожалуйста. 1) Известны данные о количестве осадков, выпавших за каждый...

Нахождение суммы всех элементов массива и суммы первых 3-х элементов массива - C++
Нужно создать алгоритм нахождения суммы всех элементов массива А и В ,и сумму первых 3-х элементов массива С. Проблема в том ,что я...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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