Форум программистов, компьютерный форум 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. Определите номера наибольшего и наименьшего элементов массива, наиболее близких к середине массива. Тест. 2; 6; 9; 7; 2; 5; 4; 9; 3. Результат. Номера З и 5.
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  [ТС]     для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1);
о, спасибо большое! а вот еще последний вопрос можно ли эту программу написать еще проще
вот код
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;
}
 Комментарий модератора 
Используйте теги форматирования кода!
 
Текущее время: 04:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru