С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
#1

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

22.12.2011, 21:21. Просмотров 698. Ответов 8
Метки нет (Все метки)

вот int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.12.2011, 21:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос для чего нужна эта строчка в с++ int x_step = (iter % 2 == 0 ? 1 : -1); и int y_step = (iter % 2 == 0 ? -1 : 1); (C++):

Что означает эта строка? int _tmain(int argc, _TCHAR* argv[]) - C++
Всем привет, до этого пользовался DEV, решил пересесть на Visual Studio 2010 Express C++. С++ еще не изучал, хочу сначала добить "С". ...

Зачем преобразовывать itsVal в int, если эта переменная и так объявлена как тип int - C++
// Оператор преобразования #include <iostream> using namespace std; class Counter { public: Counter(): itsVal(0) {} ...

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec - C++
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

Объясните для чего нужна строчка? - C++
ВОт прога #include &lt;iostream&gt; using namespace std; int main () { int stringSize; cout &lt;&lt; &quot;Size of string: &quot;; ...

Ошибка при компиляции error: cannot convert ‘int (*)[5]’ to ‘int**’ for argument ‘1’ to ‘void Replase(int**)' - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #define row 5 #define col 5 using namespace...

В каком случае надо начинать с int main() или с int _tmain( int argc, _TCHAR* argv[] ) и т.д.? - C++
Не понимаю, с чего начинать. Заранее спс.

8
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.12.2011, 21:23 #2
Тернарная операция
0
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
22.12.2011, 21:26  [ТС] #3
а ее проще можно записать или заменить?
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.12.2011, 21:32 #4
C++
1
2
3
4
5
6
int x_step = (iter % 2 == 0 ? 1 : -1);
int x_step;
if(iter % 2 == 0)
    x_step = 1;
else
    x_step = -1;
Вторая по аналогии
1
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
22.12.2011, 21:34  [ТС] #5
о, спасибо большое! а вот еще последний вопрос можно ли эту программу написать еще проще
вот код
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
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.12.2011, 21:38 #6
Не хочу копаться в чужом коде, проще задание скажите.
0
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
22.12.2011, 21:41  [ТС] #7
Создать квадратную матрицу размером 9*9
и заполнить ее числами как показано на рисунке
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
22.12.2011, 21:43 #8
Цитата Сообщение от mice Посмотреть сообщение
на рисунке
.....
0
mice
-3 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 26
22.12.2011, 21:47  [ТС] #9
извините, она расположена по этой ссылке программа должна выполняться так как показано на рисунке, а выполняется с точностью до наоборот
0
22.12.2011, 21:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2011, 21:47
Привет! Вот еще темы с ответами:

Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все обьявлять. - C++
Для чего нужно писать в int main() в скобках всякие args потом объявлять переменные, и прочее. Для чего если можно в сборках это все...

[Linker Error] Unresolved external 'Sort(int near*near ,int, int) - C++
не могу понять в чем ошибка при компиляции ошибок не выдает при запуске программы - выдает эту ошибку Unresolved external 'Sort(int...

int main() и int _tmain(int argc, _TCHAR* argv[]) - C++
При создании нового консольного приложения Microsoft Visual С++ 2010 Express создает начальный шаблон #include &quot;stdafx.h&quot; int...

[Linker error] undefined reference to `sterling(int, int, int)' - C++
#include &lt;iostream&gt; using namespace std; int sterling(int,int,int); int sterling(int,int); int sterling(int); int main() { ...


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

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

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