Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
georgiisav988
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 75
1

Часть кода С++, изменить на С#

03.12.2017, 00:06. Просмотров 434. Ответов 4
Метки нет (Все метки)

И снова, Добрый вечер!
Хотелось попросить адаптировать С++ код для C#.
Вот код на С++.
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
void swap(int *a, int *b)
{
    int t;
 
    t = *a;
    *a = *b;
    *b = t;
}
 
void reverse(int * P, int m)
{
    int i = 0, j = m;
    while (i<j)
    {
        swap(&P[i], &P[j]);
        ++i;
        --j;
    }
}
 
void antilex(int * P, int m)
{
    int i;
 
    if (m == 0)
    {
        for (i = 0; i<N; ++i)
            printf("%d ", P[i]);
        printf("\n");
    }
    else
    {
        for (i = 0; i <= m; ++i)
        {
            antilex(P, m - 1);
            if (i<m)
            {
                swap(&P[i], &P[m]);
                reverse(P, m - 1);
            }
        }
    }
}
А вот моя адаптация на C#.
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
private void FuncSwap(Int32 a, Int32 b)
        {
            int l;
            l = a;
            a = b;
            b = l;
 
        }
        private void FuncRevers(Int32[] P,Int32 m)
        {
           int i = 0, j = m;
            while (i < j)
            {
                FuncSwap(P[i], P[j]);
                ++i;
                --j;
            }
 
        }
        private void FuncPermutation(Int32[] P, int m)
        {
            int i;
 
            if (m == 0)
            {
                for (i = 0; i < N; ++i)
                {
                    sb.AppendFormat("\t ", P[i], "\n");
                    AnswerList.Items.Add(sb);
                    sb.Clear();
                }
                AnswerList.Items.Add("");
 
            }
            else
            {
                for (i = 0; i <= m; ++i)
                {
                    FuncPermutation(P, m - 1);
                    if (i < m)
                    {
                        FuncSwap(P[i], P[m]);
                        FuncRevers(P, m - 1);
                    }
                }
            }
        }
Укажите на ошибки. Или предоставьте свой вариант.
Буду благодарен.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2017, 00:06
Ответы с готовыми решениями:

Как изменить часть кода при разных условиях?
Надо вставить на страницу часть html-кода если введён год меньше или равен 325 если введён год от...

Есть ли возможность скрыть часть кода одним символом при написании кода?
Мне интересно есть ли возможность скрыть часть кода программы от его копирования(от конкурентов...

Вынести основную часть кода кода в отдельную функцию
помогите пожалуйста переделать это на функцию... #include &lt;locale.h&gt; #include &lt;conio.h&gt; int...

Как вытащить часть кода из кода страницы?
Знаю, что можно через json как-то. Вот например есть код страницы, на нем есть несколько одинаковых...

4
kesean
281 / 280 / 108
Регистрация: 04.09.2010
Сообщений: 638
Завершенные тесты: 1
04.12.2017, 09:07 2
В функцию swap параметры передаются по ссылке.
1
georgiisav988
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 75
04.12.2017, 18:53  [ТС] 3
kesean, я исправил, добавив ref но все равно вывода нет.
Вот, попробовал в консоле.
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
static void FuncSwap(ref int a, ref int b)
        {
            int l;
            l = a;
            a = b;
            b = l;
 
        }
      static  void FuncRevers(int[] P, int m)
        {
            int i = 0, j = m;
            while (i < j)
            {
                FuncSwap(ref P[i],ref P[j]);
                ++i;
                --j;
            }
 
        }
 
       static void FuncPermutation(int[] P, int m)
        {
            int i;
 
            if (m == 0)
            {
                for (i = 0; i < m; i++)
                {
                    Console.WriteLine(Convert.ToString(P[i]));
                }
                
 
            }
            else
            {
                for (i = 0; i <= m; i++)
                {
                    FuncPermutation(P, m - 1);
                    if (i < m)
                    {
                        FuncSwap(ref P[i],ref P[m]);
                        FuncRevers(P, m - 1);
                    }
                }
            }
        }
 
        static void Main(string[] args)
        {
            int N = 4;
            int[] P = new int[N];
            for (int i = 0; i < N; i++)
            {
                P[i] = i + 1;
            }
 
            FuncPermutation(P, N-1);
            Console.ReadKey();
 
        }
0
Usaga
Эксперт .NET
6977 / 4886 / 833
Регистрация: 21.01.2016
Сообщений: 18,714
Завершенные тесты: 2
05.12.2017, 07:14 4
georgiisav988, воспользуйтесь отладчиком (Debugger), чтобы найти проблему в коде.
0
georgiisav988
0 / 0 / 1
Регистрация: 01.04.2016
Сообщений: 75
05.12.2017, 13:09  [ТС] 5
Usaga, спасибо.
Но я уже исправил.
Так что можно считать,что тема закрыта.
0
05.12.2017, 13:09
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2017, 13:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Изменить табличную часть
Доброго времени суток! Как это сделать ругается на количество. &amp;НаКлиенте Процедура...

Изменить часть строки
Доброго времени суток, подскажите каким способом лучше реализовать изменение допустим только числа...

Изменить часть программы
здравствуйте,подскажите плз,вот есть программа uses Windows, Messages, SysUtils, Classes,...

Изменить видимую часть окна
Здравствуйте! У меня есть PopUp окно,вызываю его так: &lt;script&gt; function openPopUp() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.