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

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

Восстановить пароль Регистрация
 
VKVA
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 3
02.06.2016, 11:38     Найти суммы пар элементов, равноудаленных от начала и конца массива #1
Приветствую!
Вот задание из учебника:
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2016, 11:38     Найти суммы пар элементов, равноудаленных от начала и конца массива
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hilarior
18 / 17 / 12
Регистрация: 03.05.2016
Сообщений: 99
Завершенные тесты: 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;
}
VKVA
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 3
02.06.2016, 12:30  [ТС]     Найти суммы пар элементов, равноудаленных от начала и конца массива #3
Спасибо! Я три дня сидел. А здесь все просто, как и все гениальное Надо усвоить. Опыта нет и знаний не хватает. Учусь. Спасибо, еще раз!
Yandex
Объявления
02.06.2016, 12:30     Найти суммы пар элементов, равноудаленных от начала и конца массива
Ответ Создать тему
Опции темы

Текущее время: 00:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru