int main() int n; cin amp;gt;amp;gt; n; int

Int main()

int n;
cin gt;gt; n;
int mas[100][100];
for (int i = 0; i lt; n; i++)

for (int j = 0; j lt; n; j++)

if ((i + j) lt; n)

mas[i][j] = 0.5 * (i + j + 1) * (i + j + 2) + ((i + j) % 2 == 0 ? -i : -j);

else

int p = n - i - 1, q = n - j - 1;
mas[i][j] = n * n + 1 - (0.5 * (p + q + 1) * (p + q + 2) + ((p + q) % 2 == 0 ? -p : -q));

cout lt;lt; mas[i][j] lt;lt; "\t";

cout lt;lt; endl;

_getch();
return 0;

вот код программки диаганализации матрицы
что означает ? в ((i + j) % 2 == 0 ? -i : -j); этих строках?

Задать свой вопрос
1 ответ
Условие ? правильно : неверно
То есть аналогично условным операторам if и else. Если условие верно, то выражение верно будет подставлено заместо всего условного оператора, а по другому, подставляется выражение ошибочно . К примеру:

int a = 2;
int b = a==2?3:4;

В данном образце условный оператор проверяет если a==2, то присваивается значение 3 (так и будет так как a = 2), а иначе присвоится значение 4 (если переменная a не будет одинакова 2).
Есения Костьева
А сможете разъяснить работу кода?
Коссаржецкий Виталя
mas[i][j] = 0.5 * (i + j + 1) * (i + j + 2) + ((i + j) % 2 == 0 ? -i : -j);
Лилия Бременкова
вот эта строка
Denchik Rozentreter
Происходит вычисление выражения 0.5 * (i + j + 1) * (i + j + 2) + ((i + j), после чего, приобретенное число проверяется остатком при разделеньи на 2. То есть из числа удаляются все двойки (допустим 7%2, в числе 7 имеются 3 двойки и 1 единица (2+2+2+1 = 7)), а после, остаток после удаления (в выражении 7%2, остаток это единица, так как 3-и двойки убираются)
Кира
ворачивается в выражение (если бы мы брали число 6%2, то в этом случае (2+2+2 = 6) остатком будет 0, так как все двойки будут убраны). После чего этот остатком сравнивается с нулем ( == 0). Если остаток равен нулю, то подставляется отрицательное переменной i число (-i). А если остаток не равен нулю, то подставляется отрицательное переменной j число (-j).
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт