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

Переместить элементы массива в обратном порядке, исправить ошибки в коде - C++

Восстановить пароль Регистрация
 
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 223
01.07.2014, 16:22     Переместить элементы массива в обратном порядке, исправить ошибки в коде #1
Вот программа, массив заполняется от 0 до 9. Нужно переместить элементы массива в обратном порядке. Подскажите в чем ошибка?
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    int arr[10];
    int t; int t1 = 0; int i = 9; int j = 0;
    for (t = 0; t < 10; t++)
        arr[t] = t;
    cout << "Заполенный массив: ";
    while (t1 < 10) 
    {
        cout << arr[t1];
        t1++;
    }
    cout << endl;
    cout << "Зеркальный массив: ";      //0123456789
    do                                  //9876543210
    {
        
        swap(arr[j],arr[i]);
        i--;
        j++;
    } while (i > 0 && j < 10);
    while(i < 10)
    {
        cout << arr[i];
        i++;
    }
    cout << endl;
    system("Pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2014, 16:22     Переместить элементы массива в обратном порядке, исправить ошибки в коде
Посмотрите здесь:

Переставить в обратном порядке элементы массива C++
C++ Переставить в обратном порядке элементы массива
Не использую доп. элементов массива переставить элементы массива в обратном порядке C++
C++ Вывести элементы массива в обратном порядке.
C++ Массив. Положительные элементы массива а, записанные в том же порядке + отрицательные элементы массива b, записанные в обратном порядке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
01.07.2014, 16:41     Переместить элементы массива в обратном порядке, исправить ошибки в коде #2
методом reverse проще))
смотреть даже не буду наверняка у вас в середине они начинают записывать друг друга заного
IrineK
Заблокирован
01.07.2014, 16:45     Переместить элементы массива в обратном порядке, исправить ошибки в коде #3
niikiita,
возьмите массив 0123 и сделайте ему swap по вашему методу.
На листике, вручную.
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 223
01.07.2014, 17:27  [ТС]     Переместить элементы массива в обратном порядке, исправить ошибки в коде #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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    int arr[10];
    int t; int t1 = 0; int i = 9; int j = 0;
    for (t = 0; t < 10; t++)
        arr[t] = t;
    cout << "Заполенный массив: ";
    while (t1 < 10) 
    {
        cout << arr[t1];
        t1++;
    }
    cout << endl;
    cout << "Зеркальный массив: ";      
    for (int i  = 0; i < 5; i++)
        swap(arr[i], arr[10 - i - 1]);
    
    for (int i = 0; i < 10; i++)
  cout << arr[i];
    cout << endl;
    system("Pause");
    return 0;
}
Вроде сделал, такой вопрос:
как переделать
C++
1
for (int i  = 0; i < 5; i++)
в цикл do while? Никак не получается
JavaUser
68 / 68 / 15
Регистрация: 06.10.2013
Сообщений: 302
01.07.2014, 17:29     Переместить элементы массива в обратном порядке, исправить ошибки в коде #5
Цитата Сообщение от niikiita Посмотреть сообщение
в цикл do while? Никак не получается
do
{
действия....
}
while(i<5)
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 223
01.07.2014, 17:33  [ТС]     Переместить элементы массива в обратном порядке, исправить ошибки в коде #6
Цитата Сообщение от JavaUser Посмотреть сообщение
do
{
действия....
}
while(i<5)
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    int arr[10];
    int t; int t1 = 0; int i = 9; int j = 0;
    for (t = 0; t < 10; t++)
        arr[t] = t;
    cout << "Заполенный массив: ";
    while (t1 < 10) 
    {
        cout << arr[t1];
        t1++;
    }
    cout << endl;
    cout << "Зеркальный массив: ";      
    /*for (int i  = 0; i < 5; i++)
        swap(arr[i], arr[10 - i - 1]);*/
    do                                  
    {
        int i = 0;
        swap(arr[i], arr[10 - i - 1]);
        i++;
    } while (i < 5);
    
    for (int i = 0; i < 10; i++)
  cout << arr[i];
    cout << endl;
    system("Pause");
    return 0;
}
Так? Не работает
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
01.07.2014, 17:34     Переместить элементы массива в обратном порядке, исправить ошибки в коде #7
Цитата Сообщение от niikiita Посмотреть сообщение
int i = 0;
Включите уже ж мышление. У Вас с каждой итерацией i будет инициализироваться нулём.
C++
1
2
3
4
5
6
    do                                  
    {
        int i = 0;
        swap(arr[i], arr[10 - i - 1]);
        i++;
    } while (i < 5);
IrineK
Заблокирован
01.07.2014, 17:34     Переместить элементы массива в обратном порядке, исправить ошибки в коде #8
В общем случае
C++
1
2
3
4
5
6
7
do                                  
    {
        
        swap(arr[j],arr[i]);
        i--;
        j++;
    } while (i > j);
Вернитесь к начальному варианту и исправьте строку 27
DrOffset
6458 / 3832 / 885
Регистрация: 30.01.2014
Сообщений: 6,627
01.07.2014, 17:39     Переместить элементы массива в обратном порядке, исправить ошибки в коде #9
niikiita, Прочитать слово в символьный массив, а затем напечатать это слово в обратном порядке
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 223
01.07.2014, 17:45  [ТС]     Переместить элементы массива в обратном порядке, исправить ошибки в коде #10
Цитата Сообщение от IrineK Посмотреть сообщение
Вернитесь к начальному варианту и исправьте строку 27
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE, "Russian");
    int arr[10];
    int t; int t1 = 0; int i = 9; int j = 0;
    for (t = 0; t < 10; t++)
        arr[t] = t;
    cout << "Заполенный массив: ";
    while (t1 < 10) 
    {
        cout << arr[t1];
        t1++;
    }
    cout << endl;
    cout << "Зеркальный массив: ";      
    do                                 
    {
        swap(arr[j],arr[i]);
        i--;
        j++;
    } while (i > j);
    while(i < 10)
    {
        cout << arr[i];
        i++;
    }
    cout << endl;
    system("Pause");
    return 0;
}
Ответ 543210
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2014, 21:57     Переместить элементы массива в обратном порядке, исправить ошибки в коде
Еще ссылки по теме:

C++ Поместить элементы массива M в начало массива B в обратном порядке
C++ Переставить в обратном порядке элементы массива
Переставить в обратном порядке элементы массива C++

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

Или воспользуйтесь поиском по форуму:
niikiita
3 / 3 / 0
Регистрация: 29.05.2013
Сообщений: 223
02.07.2014, 21:57  [ТС]     Переместить элементы массива в обратном порядке, исправить ошибки в коде #11
Цитата Сообщение от IrineK Посмотреть сообщение
Вернитесь к начальному варианту и исправьте строку 27
Ну что тут доделать нужно? Не поможете?
Yandex
Объявления
02.07.2014, 21:57     Переместить элементы массива в обратном порядке, исправить ошибки в коде
Ответ Создать тему
Опции темы

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