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

для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите с парой прог на C http://www.cyberforum.ru/cpp-beginners/thread414963.html
1. Известны три натуральных числа, характеризующие данный момент времени: часы, минуты, секунды. Определите время через десять секунд. 2. Определите номера наибольшего и наименьшего элементов...
C++ Поменять местами слова строки Ребят, нужно создать функцию которая меняет местами слова! пример: вводим строку: привет мир получаем: http://www.cyberforum.ru/cpp-beginners/thread414946.html
Вычислить сумму чисел, нацело делящихся на 5 C++
С помощью цикла while разработать программу, которая будет вычислять сумму чисел нацело делящихся на 5. Цикл задать от 0 до введенного с клавиатуры числа.
Вычерчивание квадрата C++
......Помогите мне сделать программу любую ... Вычерчивание квадрата.... Завтра курсовую сдавать плз.....на языке Си...
C++ Алгоритм граничного перебора по вогнутому множеству http://www.cyberforum.ru/cpp-beginners/thread414914.html
Помогите написать программу на тему: Алгоритм граничного перебора по вогнутому множеству
C++ Упорядочевание строк Здравствуйте, у меня вопрос к знающим, может поможет кто. Есть задача: Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент.... подробнее

Показать сообщение отдельно
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
22.12.2011, 21:34  [ТС]
о, спасибо большое! а вот еще последний вопрос можно ли эту программу написать еще проще
вот код
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
#include <iostream>
#include <iomanip>
using namespace std;
const int n=9;
void fill_matrix(int value,     // Значение для следующего элемента матрицы.
        int iter,       // Порядковый номер итерации (вызова функции).
        int curr_row,   // Текущий ряд (строка).
        int curr_col,   // Текущая колонка (столбец).
        int rows,       // Количество рядов в матрице.
        int cols,       // Количество колонок в матрице.
        int mtrx[][n]) {    // Матрица.
    // Получаем значение шага по горизонтали и вертикали
    // в зависимости от номера итерации: если четный, то 
    // движемся вправо и вверх, если нечетный - то влево и вниз.
    int x_step = (iter % 2 == 0 ? 1 : -1); // если остаток от деления
    int y_step = (iter % 2 == 0 ? -1 : 1);
 
    // Цикл для заполнения элементов в текущем ряду (по горизонтали).
    for (int i = 0; i < iter; ++i) {
        curr_col += x_step;
        if (curr_col < 0 || curr_col >= n) {
            return;
        }
        mtrx[curr_row][curr_col] = value++;
    }
    
    // Цикл для заполнения элементов в текущем столбце (по вертикали).
    for (int j = 0; j < iter; ++j) {
        curr_row += y_step;
        if (curr_row < 0 || curr_row >= n) {
            return;
        }
        mtrx[curr_row][curr_col] = value++;
        
    }
 
    // Инкремент счетчика итераций.
    ++iter;
 
    // Рекурсивный вызов с текущими значениями.
    fill_matrix(value, iter, curr_row, curr_col, n, n, mtrx);
}
 
int main()
{
    //Матрица
    int mtrx[n][n];
 
    
//  int rows=9; // кол-во строк.
//  int cols=9; // кол-во столбцов.
    
 
    // Текущая позиция по вертикали.
    int curr_row = n / 2;
    // Текущая позиция по горизонтали.
    int curr_col = n / 2;
 
    // Заполнение матрицы.
    // Первый элемент заносим в матрицу явно.
    mtrx[curr_row][curr_col] = 1;
    fill_matrix(2, 1, curr_row, curr_col, n, n, mtrx);
 
    //Выводим матрицу
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << setw(5) << mtrx[i][j];
        }
        cout << endl;
    }
 
    system("PAUSE");
 
    return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru