Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Перебор массива (С++)

29K
11 декабря 2007 года
mouseR
9 / / 27.11.2007
Дан int-овый массив {1,2,3,4,5,6,7,8,9}
Требуеться перебрать все возможные перестановки чисел, что бы они шли в порядке возрастания
123456789
123456798
123456978
123456987
и т.д.

Прогрмма должна быть написана в одном цикле, а не сперва перестановки, а потом упорядовачиние.
Так же она должна быть максимально проста по структуре
По желанию можно описывать каментариями функции
Вот такие вот условия задачи.
help please.
13K
13 декабря 2007 года
specter
113 / / 28.09.2007
Держи
Код:
#include <iostream>

void main()
{
    bool used[9] = {false, false, false, false, false, false, false, false, false};
    int array[9] = {-1,-1,-1,-1,-1,-1,-1,-1,-1};
   
    int pos = 0;
    int i;
    while ( 1 )
    {
        if (pos == 9)
        {
            for (i = 0; i < 9; ++i)
                std::cout << array + 1;
            std::cout<<"\n";
            pos = 7;
            used[ array[8] ] = false;
            used[ array[7] ] = false;
            array[8] = -1;
        }
        for (i = array[pos] + 1; i < 9; ++i )
            if ( !used )
            {
                array[pos] = i;
                used = true;
                ++pos;
                break;
            }
        if ( i == 9 )
        {
            array[pos] = -1;
            --pos;
            if ( pos < 0 ) break;
            used[ array[pos] ] = false;
        }
    }
    system("PAUSE");
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог