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

Поставить последний элемент вектора в середину - C++

Восстановить пароль Регистрация
 
Maxvik_Grunge
1 / 1 / 0
Регистрация: 10.03.2014
Сообщений: 30
05.04.2014, 13:52     Поставить последний элемент вектора в середину #1
У меня получилось что просто происходит замена элемента с середины с последним элементом
Подскажите как реализовать вот такую штуку,пример:дан одномерный массив = {1,2,3,4,5}
после обработки по условию должен получится массив = {1,2,5,3,4}

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
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "work__3.h"
int main()
{
    do
    {
    const int N = 20;
    float vektor [N];//Объявление одномерного массива vektor типа float(с плавающей точкой,обычной точности)
    //Ввод Массива
    for ( int i(0) ; i<N ; i++)
    {
        cout << "Enter vector ["<< i <<"]";
        cin >> vektor[i];
    }
    //Вывод Массива
    int i(0);
    do
    {   
        cout << vektor[i] << '\t';
        i++;
    }while (i<N);
    cout << endl;
    cout << "___________________________________________________________________________" << endl;
    //Обработка Массива,Вычисление среднего значения элементов.
    float sum=0.0,average=0.0;
    for ( int j(0) ; j<N ; j++)
    {
        sum+=vektor[j];//Вычисление суммы       
    }
    average = sum / N;//Вычисление среднего
    cout << "Average: " << average << endl;//Вывод среднего значения
    cout << "___________________________________________________________________________"<< endl;
    //Обработка Массива,Поставить последний элемент в середину.
    float tmp;
    tmp = vektor[N-1];
    vektor[N-1] = vektor[N/2];
    vektor[N/2] = tmp;
    //Вывод результата обработки массива
    i=0;
    do
    {
        cout << vektor[i] << '\t';
        i++;
    }while (i<N);
    cout << endl;
    
    }while(true);
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Maxvik_Grunge Посмотреть сообщение
//Обработка Массива,Поставить последний элемент в середину. float tmp; tmp = vektor[N-1]; vektor[N-1] = vektor[N/2]; vektor[N/2] = tmp; //Вывод результата обработки массива i=0; do { cout << vektor[i] << '\t'; i++; }while (i<N); cout << endl;
Вот о чем я говорил),подскажите как сделать правильно по условию
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2014, 13:52     Поставить последний элемент вектора в середину
Посмотрите здесь:

C++ Вставить элемент в середину массива
вывести последний элемент вектора C++
C++ Найти максимальный элемент массива и вывести последний четный элемент
Определить количество положительных элементов вектора С(10) и заменить этим значением минимальный элемент вектора А(5) C++
Строки. Как найти в слове первый элемент? Второй элемент, последний элемент? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,158
Завершенные тесты: 1
05.04.2014, 14:03     Поставить последний элемент вектора в середину #2
C++
1
2
3
4
5
    float tmp;
    tmp = vektor[N-1];
    for ( int j=N/2 ; j<N-1 ; j++)
        vektor[j+1] = vektor[j];
    vektor[N/2] = tmp;
Maxvik_Grunge
1 / 1 / 0
Регистрация: 10.03.2014
Сообщений: 30
05.04.2014, 15:25  [ТС]     Поставить последний элемент вектора в середину #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
    float tmp;
    tmp = vektor[N];
    vektor[i+1] = vektor[i];
    vektor[N/2] = tmp;  
    i=0;
    do
    {
        cout << vektor[i] << '\t'; 
        i++;
 
    }while(i < N-1);
    cout << endl;
выдает такой результат :
Поставить последний элемент вектора в середину
((
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,158
Завершенные тесты: 1
05.04.2014, 15:36     Поставить последний элемент вектора в середину #4
Цитата Сообщение от zss Посмотреть сообщение
for ( int j=N/2 ; j<N-1 ; j++)
куда дели?
Maxvik_Grunge
1 / 1 / 0
Регистрация: 10.03.2014
Сообщений: 30
05.04.2014, 15:39  [ТС]     Поставить последний элемент вектора в середину #5
Дело в том что мне нужно организовать цикл через do while
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,158
Завершенные тесты: 1
05.04.2014, 15:42     Поставить последний элемент вектора в середину #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
float tmp;
    tmp = vektor[N-1];
    int j=N/2;
    do
    {
        vektor[j+1] = vektor[j];
        j++;
    }while (j<N-1);
    vektor[N/2] = tmp;
Yandex
Объявления
05.04.2014, 15:42     Поставить последний элемент вектора в середину
Ответ Создать тему
Опции темы

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