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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2010, 20:02   #1
SOKOLDANGER
 
Регистрация: 21.05.2010
Сообщений: 8
Хорошо Перестановки N чисел

Задача: "Построить алгоритм, выдающий без повторений все перестановки N чисел."

Вот мое решение
Код:
#include <iostream>
using namespace std;

void output_mass (int n, int mass [11])
{
    for (int i=0; i<n; i++)
    {
        cout << mass[i] << "    ";
    }
}

void poisk (int n, int mass[11])
{
    for (int i=n-1; i>0; i--) // просматриваем массив с конца
    {
        if (mass[i-1]<mass[i]) // если следующее число меньше предыдущего тогда остановливаемся
        { 
            for (int j=n-1; j>0; j--) // просматриваем массив ( справа налево ) пока не дойдем до
            {
                if (mass[j]>mass[i-1]) // первого числа, которое уже больше mass[i-1]
                {                         // меняем их местами
                    int q=mass[i-1];
                    mass[i-1]=mass[j];
                    mass[j]=q;
                    
                    output_mass (n, mass);
                    cout << endl;
                }
            } 
        }
    }
}

int main ()
{
    int n;
    int mass[11];

    cout << "Wwedite koli4estwo w perestanowke: ";
    cin >> n;
    if (n>10 || n<0)
    {
        cout << "Koli4estwo wwedeno ne werno!!!!" << endl;
        system ("pause");
        return 1;
    }

    for (int i=0; i<n; i++)
    {
        cout << "Wwedite " << i+1 << "-element: ";
        cin >> mass[i];
    }

    output_mass (n, mass);
    cout << endl;
    
    poisk (n, mass);

    system ("pause");
    return 0;
}
Он работает, но не выводит все перестановки числа.

Пожалуйста, помогите найти ошибку.
SOKOLDANGER вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввести несколько чисел (кол-во чисел запрашивать с экрана). Определить, сколько чисел, меньших заданного Lirika Помощь студентам 0 08.05.2010 21:39
перестановки fedd Помощь студентам 2 27.11.2009 22:59
Перестановки H'orn Общие вопросы .NET 4 11.11.2009 03:08
Шифр вертикальной перестановки funny Общие вопросы C/C++ 0 27.09.2008 18:59
программа перестановки чисел натурального ряда от 1 до 10 Ольга 01 Общие вопросы C/C++ 1 28.07.2008 20:09