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

Вывод матрицы спиралью - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Replace в Cstring http://www.cyberforum.ru/cpp-beginners/thread971614.html
Нужно в урле заменить слово и перейти по нему... как мне его заменить? ex->webBrowser.get_LocationURL().Replace(L"zzzz",L""); ?????? ex->webBrowser.Navigate(L"http://127.0.0.1:8080/",0,0,0,0);
C++ Перевод из С# на С++ using System; namespace kod_grey { class Program { static void Main(string args) { Byte i; Console.WriteLine("Table #1"); http://www.cyberforum.ru/cpp-beginners/thread971613.html
C++ Вывод из строки в файл
Уважаемые знатоки у меня к вам несколько вопросов по программе.. #include<iostream> #include<fstream> #include<string> using namespace std; int main() { setlocale (LC_ALL, "RUS"); //узнает русс язык
Создать список целых чисел. Создать новый список, записав в него отрицательные элементы C++
Создать список целых чисел. Создать новый список, записав в него отрицательные элементы.(задачу нужно решить 3-мя способами- стек, очередь, двусвязный список)
C++ Есть необходимость? http://www.cyberforum.ru/cpp-beginners/thread971587.html
Везде рекомендуют создавать класс (любой элемент) в ".h" файлах, а описывать уже непосредственно в ".cpp", есть ли в этом необходимость, почему нельзя описать все классы и их содержимое в "головах", а использовать потом в единственном ".cpp" файле? Почему имеено так? И главное: чем гразит такие использование. Спасибо.
C++ Стэк. Нужно определить, сколько элементов стэка, начиная с вершины, находятся до элемента с максимальным значениям У меня такая задачка: Определить структуру стэка и разработать функции, необходимые для роботы с заданным контейнером: ф-ию суммы элементов push (память под очередной элемент контейнера следует выделять динамически), ф-ию удаления элемента pop, ф-ию вывода содержания контейнера на экран, ф-ию удаления контейнера. Разработать программное дополнение, в котором создается контейнер и заполняется... подробнее

Показать сообщение отдельно
DirectX
 Аватар для DirectX
23 / 17 / 6
Регистрация: 07.10.2013
Сообщений: 47
09.10.2013, 23:19     Вывод матрицы спиралью
Надеюсь что понятно объяснил
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
#include <iostream>
using namespace std;
 
int main()
{
    int i, j, k = 1, m, n, c = 0, b, **a;
    cin >> m >> n;                                          // вводим размерность
 
    a = new int*[m];                                        // создаем динамическую матрицу если этого еще
    for (i = 0; i < m; i++)                                 // не знаешь, тогда замени на статическую
    *(a + i) = new int[n];  // *(a + i) == a[i]             // int a[m][n] = {0};
    
    b = m * n;                                              // максимальный елемент спирали
    
    do                                                      // до тех пор пока k != b(макс. елем.) заполняем матрицу
    {                                                       //
        for (j = c; j < n - c; j++)                         // алгоритм словами я передать не могу
        {                                                   // но смысл его в том что матрица заполняется
            if (k > b)                                      // по 4 стенкам(соответственно 4 форами)
                break;                                      //
            a[c][j] = k++;                                  // * * * * * 
        }                                                   // * * * * *   <---- "типо" матрица 4х5
                                                            // * * * * *
        for(i=c+1;i<m-c;i++)                                // * * * * *
        {                                                   //
            if(k > b)                                       // 1 2 3 4 5   <---- первая стенка
                break;                                      // * * * * *
            a[i][n - c - 1] = k++;                          // * * * * *
        }                                                   // * * * * *
                                                            //
        for(j = n - c - 2; j >= c; j--)                     // 1 2 3 4 5
        {                                                   // * * * * 6
            if(k > b)                                       // * * * * 7
                break;                                      // * * * * 8
            a[m - c - 1][j] = k++;                          //         ^
        }                                                   //         '-------- вторая стенка
                                                            //
        for(i = m - c - 2; i > c; i--)                      //
        {                                                   // 1  2  3  4  5                                1  2  3  4  5
            if(k > b)                                       // *  *  *  *  6                                14 *  *  *  6
                break;                                      // *  *  *  *  7                                13 *  *  *  7
            a[i][c] = k++;                                  // 12 11 10 9  8     <---- третья стенка        12 11 10 9  8
        }                                                   //                                              ^
                                                            //                                              '------- четвертая стенка
        c++;                                                // счетчик количества("толщины") стенок
    }                                                       //
    while(k <= m * n);                                      // ну и на следующих кругах заполняем оставшиеся "места"
    // if-ы нужны для того чтобы не случилась перезапись
    // верхней стенки -> нижней
    // и левой -> правой
 
    for (i = 0; i < m; i++)                                 //
    {                                                       //
        for (j = 0; j < n - 1; j++)                         // вывод
            cout << a[i][j] << "\t";                        // матрицы
        cout << a[i][n - 1] << "\n";                        //
    }                                                       //
 
    for(i = 0;i < m; i++)                                   // освобождение динамической памяти
        delete [] a[i];                                     // (если матрица статическая, то этот блок не нужен)
    delete [] a;                                            //
 
    system("pause");
    return 0;
}
 
Текущее время: 04:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru