Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2011, 21:52   #51
Lusin
 
Регистрация: 25.05.2011
Сообщений: 7
По умолчанию

задача:
Дан массив x [1]..x[n] целых чисел. Не используя других массивов, переставить элементы массива в обратном порядке.
код:

#include <iostream>
#include <conio.h>
using namespace std;

#define SIZE 10

int main() {

int i;
int x[SIZE]={1, 2, 3, 4, 5, 6, 7, 8, 9,10};
for(i=0; i<SIZE; i++)
cout << x[i] << " ";
cout << endl;
for (i<SIZE; i>=0; i--)
cout << x[i] << " " ;

getch();
return 0;
}
можно так ? или что неправильно?
Lusin вне форума Ответить с цитированием
Старый 09.08.2011, 22:16   #52
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Я Ваш код немного подправил:
Код:
#include <iostream>
using namespace std;

#define SIZE 10

int main() {

    int i;
    int x[SIZE]={2, 1, 3, 4, 5, 6, 7, 8, 9,10};

    for(i=0; i < SIZE; i++)
        cout << x[i] << " ";
    cout << endl;

    for (i=SIZE-1; i>=0; i--)
        cout << x[i] << " " ;

    puts("");
    return 0;
}
Но он будет работать только для Вашего упорядоченного массива. Если в этом массиве переставить элементы, то программа сработает не правильно. Нужно пользоваться алгоритмом сортировки в обратном порядке. Я сейчас нашёл книгу Керниган и Ритчи - Онлайн по ссылке: ссылка. Тыкните раздел 5.12. там есть функция sort() Она сортирует в прямом направлении. А Вы переделайте для обратного (это, кстати, упражнение 5-11.). Это один из вариантов решения.
8Observer8 вне форума Ответить с цитированием
Старый 09.08.2011, 22:17   #53
lucky_beggar
Пользователь
 
Регистрация: 19.03.2011
Сообщений: 22
По умолчанию

Ой, массивы я ещё не смотрел. Народ, помогите человеку. А заодно и мне дайте какую-нибудь интересную задачку!
lucky_beggar вне форума Ответить с цитированием
Старый 09.08.2011, 22:28   #54
lucky_beggar
Пользователь
 
Регистрация: 19.03.2011
Сообщений: 22
По умолчанию

Вообще забудь про <conio>. Это такая гадость!
lucky_beggar вне форума Ответить с цитированием
Старый 09.08.2011, 23:02   #55
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

28Observer8, это не перестановка массива, а вывод массива в обратном порядке.
Перестановка вот:
Код:
#include <iostream>
using namespace std;

#define SIZE 10

int main() {

    int i;
    int x[SIZE]={1, 2, 3, 4, 5, 6, 7, 8, 9,10};

    for( i =0; i < SIZE; i++)
        cout << x[i] << " ";
    cout << endl;
    for( int *first = x, *last = x + SIZE - 1; first < x + SIZE / 2; first++, last--)
    {
	int tmp = *first;
	*first = *last;
	*last = tmp;
    }
    for( i =0; i < SIZE; i++)
        cout << x[i] << " ";
    cout << endl;

    return 0;
}
An1ka вне форума Ответить с цитированием
Старый 09.08.2011, 23:29   #56
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

An1ka, я не писал, что это перестановка. Перечитайте, внимательно.

P.S. Ваш код не сортирует, а выводит в обратном порядке.

Последний раз редактировалось 8Observer8; 10.08.2011 в 18:01.
8Observer8 вне форума Ответить с цитированием
Старый 09.08.2011, 23:58   #57
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
По умолчанию

Цитата:
Сообщение от 8Observer8 Посмотреть сообщение
An1ka, я не писал, что это перестановка. Перечитайте, внимательно.

P.S. Ваш код не сортирует, а выводит в обратном порядке.
Тогда прочитайте, что в задании написано:
Цитата:
Сообщение от Lusin Посмотреть сообщение
задача:
Дан массив x [1]..x[n] целых чисел. Не используя других массивов, переставить элементы массива в обратном порядке.
Собственно надо было просто переставить элементы массива. И сортировка тут не причем.
An1ka вне форума Ответить с цитированием
Старый 10.08.2011, 00:24   #58
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

P.S. Вывести в обратном порядке можно и покороче:
Код:
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <iterator>

using namespace std;


int main()
{
    vector<int> values;
    copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(values));
    copy(values.rbegin(), values.rend(), ostream_iterator<int>(cout, " "));

    return 0;
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 10.08.2011, 05:33   #59
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

An1ka, извините, виноват! Задание неправильно понял.
8Observer8 вне форума Ответить с цитированием
Старый 10.08.2011, 16:18   #60
Lusin
 
Регистрация: 25.05.2011
Сообщений: 7
По умолчанию

спасибо!!!!!!!!!
Lusin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
новичок с# alexander1111 Фриланс 9 21.04.2011 15:32
новичок иван 888 Помощь студентам 3 05.10.2010 08:13
Новичок mendess01 Microsoft Office Excel 9 01.10.2010 17:08
Новичок stalin9006 Общие вопросы C/C++ 4 28.12.2007 01:52