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

Заполнение матрицы спиралью - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Есть процесс A и дочерний процесс B, который находит хэндл родительского процесса A. И этот хэндл в разных случаях РАЗНЫЙ! Почему? http://www.cyberforum.ru/cpp-beginners/thread333637.html
Друзья! Вот код A.exe, суть которого просто стать родительским для B.exe и висеть в системе. #include <stdio.h> #include <windows.h> int main() { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si,sizeof(STARTUPINFO) );
C++ Strtok() и string По заданию нужно воспользоваться именно strtok чтобы разбить строку что есть на слова (ориентируясь на пробелы, все знаки препинания предварительно убираются). Собственно string str; ... string str2=strtok(str.c_str()," "); - материться string str2=strtok(str.data()," "); - и так тоже матерится Собственно ошибка связана с тем что strtok отказывается жевать const (вообще странно, она же... http://www.cyberforum.ru/cpp-beginners/thread333623.html
Read PNG in C C++
Всем привет. Подскажите как на С (без привлечения сторонних библиотек) прочитать PNG файл. В конечном итоге хотелось бы получить двумерный массив, где номер элемента - это положения пикселя, а сам элемент - это цвет.
C++ Пузырьковый метод
Не могу написать простейший пузырьковый метод. Откуда берется ноль ? #include <iostream> using namespace std; int main() {setlocale(LC_ALL,"Rus"); int a,r=100; for(int y=0;y<5;y++) {cout<<"Введите "<<y+1<<" число --> "; cin>>a;
C++ error LNK2019: ссылка на неразрешенный внешний символ http://www.cyberforum.ru/cpp-beginners/thread333566.html
Всем привет. Вопрос легкий, но что-то я застопорился. Делал задачки с книги Джесса Либерти, и на классах завис. По идеи все должно было работать без проблем,но увы... Вот код задачи. #include <iostream> #include <conio.h> using namespace std;
C++ операция повторения #include <iostream> using namespace std; int main() { int match, win, ni, por; cout<<"Введите количество матчей: "; cin >> match; cout<<"Введите количество побед: "; cin >> win; подробнее

Показать сообщение отдельно
ruslan_abel
 Аватар для ruslan_abel
33 / 33 / 4
Регистрация: 06.05.2011
Сообщений: 91
16.07.2011, 23:55     Заполнение матрицы спиралью
Вот когда-то писал для произвольной матрицы:
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
#include <iostream>
#include <iomanip>
 
using std::cin;
using std::cout;
using std::endl;
 
using std::setw;
 
 
int main()
{
    //Кол-во строк и столбцов
    int n, m;
 
    //Матрица
    int** mtrx;
 
    int l, c;
 
    //Получаем от пользователя кол-во строк и столбцов
    cout << "N: ";
    cin >> n;
 
    cout << "M: ";
    cin >> m;
 
    //Выделяем память для элементов массива
    mtrx = new int*[n];
    for (int i = 0; i < n; i++)
        mtrx[i] = new int[m];
    
    //Виток спирали
    l = 0;
 
    //Значение текужего элемента
    c = 1;
 
    //Обрабатываем отдельные случаи: матрица-строка и матрица-столбец
    if (n == 1)
        for (int i = 0; i < m; i++)
            mtrx[0][i] = i + 1;
    else if (m == 1)
        for (int i = 0; i < n; i++)
            mtrx[i][0] = i + 1;
    else
        //Если матрица не является матрицей-строкой или матрицей-столбцом
        while (c <= m * n) 
        {
            //Верхняя часть витка спирали
            for (int i = l; (i < m - l) && (c <= m * n); i++)
                mtrx[l][i] = c++;
 
            //Правая часть
            for (int i = l + 1; (i < n - l) && (c <= m * n); i++)
                mtrx[i][m - l - 1] = c++;
 
            //Нижняя часть
            for (int i = m - l - 2; (i >= l) && (c <= m * n); i--)
                mtrx[n - l - 1][i] = c++;
 
            //Правая часть
            for (int i = n - l - 2; (i > l) && (c <= m * n); i--)
                mtrx[i][l] = c++;
 
            //Переходим на следующий виток
            l++;
        }
 
    //Выводим матрицу
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            cout << setw(5) << mtrx[i][j];
 
        cout << endl;
    }
            
    system("PAUSE");
 
    return 0;
}
 
Текущее время: 00:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru