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

Нахождение всех перестановок - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вопрос про цикл for http://www.cyberforum.ru/cpp-beginners/thread115615.html
Скажите, а есть ли какая-то разница в записях: for (int i=0; i<n; i++) и for (int i=0; i<n; ++i) Спасибо.
C++ Найти сумму ряда Что-то я совсем туплю, но незнаю как найти сумму ряда s=1/(1*2) + 1/(2*3) + 1/(3*4) + ... Будьте добры, помогите решить. http://www.cyberforum.ru/cpp-beginners/thread115592.html
C++ Создание окна из - под консоли
Здравствуйте. Нас тут озадачили в универе надеванием штанов через голову. Суть: программа выполняет там некоторые операции, в результате которых имеет две строки - одна с цифрами, другая с буквами. Но это не самое страшное.. Вот она должна их вывести в двух новых разных окнах, а делается всё это исключительно в консоли. При этом не допускается запуск новых экзешников - это должна быть одна...
C++ Операторы ветвления
Если целое число m делится на целое число n, то вывести на экран частное от деления, в противном случае вывести сообщение «m на n нацело не делится». решить через 1.if 2.switch :)
C++ Сумма элементов массива http://www.cyberforum.ru/cpp-beginners/thread115580.html
Как найти сумму элементов массива, расположенных между первым и вторым положительными элементами
C++ Противоположная операция сортировки(перемешивания) Помогите разобраться! У меня такая задача: Задается список элементов, которые расположить в случайном порядке, и выполнить Противоположная операция сортировки (перемешивания)! Тут я воспользовался сортировкой сортировка перемешиванием (шейкер-сортировка) Я написал, но в чем я ошибся #include <vcl.h> #pragma hdrstop #include <iostream.h> #include <conio.h> #include <stdio.h>... подробнее

Показать сообщение отдельно
turtLe
3 / 3 / 2
Регистрация: 11.11.2009
Сообщений: 41
12.04.2010, 14:49     Нахождение всех перестановок
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <string>
using namespace std;
 
 
int aton(char a) // преобразование символа в номер цифры
{
    if ((a >= '0') && (a <= '9'))
        return a - '0';
    else if ((a >= 'a') && (a <= 'z'))
        return a - 'a' + 10;
    else
        return a - 'A' + 10;
}
 
int main()
{int a[10],b,i,j,k,Ls,x,z,q;
string s;
cout<<"Vvedite posledovatel'nost' chisel"<<"\n";
cin>>s;
q=0;i=1;j=1;
Ls=s.length();
for(i=1;i<Ls+1;i++) a[i]=aton(s[i-1]);
b=a[Ls];
do
{
i=Ls-1;
while(a[i]>a[i+1]) i=i-1;
j=i+1;
while(a[j]>a[i]) j=j+1;
j=j-1;
x=a[i];
a[i]=a[j];
a[j]=x;
for(k=1;k<(Ls-i+1)/2;k++)
{
    x=a[i+k];
    a[i+k]=a[Ls-k+1];
    a[Ls-k+1]=x;
}
cout<<"\n";
for(z=1;z<Ls+1;z++)
cout<<a[z];
q++;
cout<<"\n"<<q;
}
while(a[1]!=b);
cout<<"\n";
 
system("pause");
    return 0;
}
проблема состоит в том,что программа находит не все возможные перестановки.
Например
s=123
a=132
a=231
a=321

помогите разобраться в чем ошибка.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru