• int main()
    {
    int n;
    cin >> n;
    int mas[100][100];
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < n; j++)
    {
    if ((i + j) < 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 << mas[i][j] << "\t";
    }
    cout << endl;
    }
    _getch();
    return 0;
    }
    вот код программы диаганализации матрицы
    что означает ? в ((i + j) % 2 == 0 ? -i : -j); этих строчках?

Ответы 6

  • А можете объяснить работу кода?
  • mas[i][j] = 0.5 * (i + j + 1) * (i + j + 2) + ((i + j) % 2 == 0 ? -i : -j);
    • Автор:

      mimi12
    • 6 лет назад
    • 0
  • вот эта строчка
  • Происходит вычисление выражения 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).
  • условие ? верно : неверноТо есть аналогично условным операторам if и else. Если условие верно, то выражение верно будет подставлено вместо всего условного оператора, а иначе, подставляется выражение неверно . К примеру:int a = 2;int b = a==2?3:4;В данном примере условный оператор проверяет если a==2, то присваивается значение 3 (так и будет так как a = 2), а иначе присвоится значение 4 (если переменная a не будет равна 2).
    • Автор:

      buddyqpwa
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years