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

Формирование циклической формы перестановки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подпрограмма - процедура (получить вектор длины слов) http://www.cyberforum.ru/cpp-beginners/thread796039.html
Словом назовём всякую последовательность букв латинского алфавита длины не более 20, а предложением - всякую последовательность не более чем 30 слов, отделённых друг от друга сериями пробелов, тогда в тексте исходного предложения во входной последовательности с помощью процедуры получить вектор длины этих слов. Знает кто, как это решить?
C++ Сравнение параметров перегруженной ф-ии Есть два типа параметров у ф-ии (перегрузка) long int и float, нужно их сравнить на "больше-меньше" (не понятно как) и указать на правильность реализации перегрузки. #include <iostream> using namespace std; long int* data(long int *a) { cout<<*a<<endl; http://www.cyberforum.ru/cpp-beginners/thread795975.html
присваивание char - где тут может быть ошибка? C++
Есть простая функция, обратную строку должна выдавать, а вместо этого передает "необработаное исключение" проблема в s = s; s = temp; Но ведь насколько я знаю так МОЖНО писать, разве нет?? Очень нужна помощь!!! char* reverse(char* s){ char temp; int len=strlen(s)/2; cout<<s;
С++ метод Гаусса с единичной диагональю - програма не работает C++
#include <stdio.h> #include <stdlib.h> #define N 3 int main() { int i, j, k; float AMAX,M; float A={{1,1,2,-1}, {2,-1,2,-4}, {4,1,4,2}};
C++ Суммировать два значения (классы) http://www.cyberforum.ru/cpp-beginners/thread795962.html
Объекты класса С1 и С2 анализируются нормально, но почему С3=2? Даже если инициализировать С1 =2, а С2 =5, то С3 = С1+С2 =2. Подскажите где ошибка. #include <iostream> using namespace std; //////////////////////////////////////////////////////////////////////////////// class LInt { private: int data; public:
C++ Подключить нужные библиотеки и исправить ошибки Здравствуйте, вот код кажется на с++, помогите пожалуйста подключить нужные библиотеки, исправить ошибку или сделать проект, а то у меня никак неполучаеться. int n; vector < vector<int> > a; // Матрица эффективности a vector<int> xy, yx; // Паросочетания: xy, yx vector<char> vx, vy; // Альтернирующее дерево vx, vy vector<int> maxrow, mincol; // Способности,... подробнее

Показать сообщение отдельно
dnb_dnb
44 / 0 / 1
Регистрация: 13.11.2011
Сообщений: 95
27.02.2013, 08:51     Формирование циклической формы перестановки
Здравуствуйте! Чтобы показать вам, что такое циклическая форма я прикрепляю картинку - пример ( На ней 1, 2, 3, 4 - последовательность действий. В моём примере должно получиться (bf) (dc) , но получается только (bf). Подскажите, пожалуйста, что не так.
[IMG]http://s018.***********/i525/1302/73/4e9f9605b872.jpg[/IMG]

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include "stdafx.h"
#include <conio.h>
#include <iostream>
        using namespace std;
#define SIZE 6 // максимально возможный для работы размер массива
 
int main()
{
        int i,j;
        int k = 0;
        char ch,tt;
 
        char NEW_MAS [SIZE] = {};
        char MAS_1[SIZE]={'b','c','d','f'}; // массив переставляемых символов
        char MAS_2[SIZE]={'f','d','c','b'};; // массив переставленных символов
 
        for(i = 0; i < SIZE; i++)
        {
                ch=MAS_1[i];
                MAS_1[i]=MAS_2[i];
                MAS_2[i]=ch;
 
    }
        for(j = 0; j < SIZE-1; j++)  // j - индекс второй строки после первой перестановки
        {
                for(i=j;i<SIZE;i++)      //   индекс первой строки
                {
                         // i-й столбей должен стать j- ым
 
                        if(MAS_2[j]==MAS_1[i])
                        {
                                ch=MAS_1[i];
                                MAS_1[i]=MAS_1[j];
                                MAS_1[j]=ch;
 
                                ch=MAS_2[i];
                                MAS_2[i]=MAS_2[j];
                                MAS_2[j]=ch;
 
 
                        }
                }
 
        }
 
    cout<<"New MAS_1 with old oder :"<<endl;
    for(i = 0; i < SIZE; i++)     cout<<MAS_1[i]<<" ";
        cout<<"\n New MAS_2 :"<<endl;
    for(i = 0; i < SIZE; i++)     cout<<MAS_2[i]<<" ";
 
 
    k=1;
    NEW_MAS[k]='(';
        j=0;
    tt= MAS_1 [j];
 
   while(j<SIZE)  // цикл по элементам 1 строки
    { 
        for(i=0; i < SIZE; i++)  // формирование блока
        {
            NEW_MAS[k]='(';
            k++;
            NEW_MAS[k] = MAS_1 [j];  // начало цикла
            
            k++;
            NEW_MAS[k] = MAS_2 [j];  //b
 
            // запись из второй строки
 
                    if(MAS_2[j]!=MAS_1[j])
                    {
                        NEW_MAS[k]=MAS_2[j]; // f
                   
                     j++;  
                    }
            //  поиск по первой строке последнего элемента
l1:                 j++;
                    if(j==SIZE) break;
                    if((NEW_MAS[k]==MAS_1[j])&&(MAS_2[j]!=tt))
                    { 
                        k++;
                        NEW_MAS[k]=MAS_2[j]; 
                        
                    }
                    else 
                    {
                         k++;
                         NEW_MAS[k] = ')';       
                         
                         break;
                    }
                    goto l1;                    
                                     
        }
         j=tt+1;
    }
 
   
    for(j = 1; j <= k; j++)     cout<<NEW_MAS[j]<<" ";
 
        getch();
        return 0;
}
Ошибка, видимо, где-то здесь:
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
k=1;
    NEW_MAS[k]='(';
        j=0;
    tt= MAS_1 [j];
 
   while(j<SIZE)  // цикл по элементам 1 строки
    { 
        for(i=0; i < SIZE; i++)  // формирование блока
        {
            NEW_MAS[k]='(';
            k++;
            NEW_MAS[k] = MAS_1 [j];  // начало цикла
            
            k++;
            NEW_MAS[k] = MAS_2 [j];  //b
 
            // запись из второй строки
 
                    if(MAS_2[j]!=MAS_1[j])
                    {
                        NEW_MAS[k]=MAS_2[j]; // f
                   
                     j++;  
                    }
            //  поиск по первой строке последнего элемента
l1:                 j++;
                    if(j==SIZE) break;
                    if((NEW_MAS[k]==MAS_1[j])&&(MAS_2[j]!=tt))
                    { 
                        k++;
                        NEW_MAS[k]=MAS_2[j]; 
                        
                    }
                    else 
                    {
                         k++;
                         NEW_MAS[k] = ')';       
                         
                         break;
                    }
                    goto l1;                    
                                     
        }
         j=tt+1;
    }
 
   
    for(j = 1; j <= k; j++)     cout<<NEW_MAS[j]<<" ";
 
        getch();
        return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru