#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");
}
Перебор массива (С++)
Требуеться перебрать все возможные перестановки чисел, что бы они шли в порядке возрастания
123456789
123456798
123456978
123456987
и т.д.
Прогрмма должна быть написана в одном цикле, а не сперва перестановки, а потом упорядовачиние.
Так же она должна быть максимально проста по структуре
По желанию можно описывать каментариями функции
Вот такие вот условия задачи.
help please.
Держи