Я не люблю ставить полные ответы, но так как я решил, я надеюсь, что это может помочь вам.
Я разбил его, так что будет легче понять
смотреть сокращенный, если оценка (condition) ? True_val : False_val
void calculate_the_maximum(int n, int k) {
int max_and = 0;
int max_or = 0;
int max_xor = 0;
int tOr, tAnd, tXor;
for (int i = 1; i <= n ; i++)
for (int j = 1; j <= n; j++) {
if ( i <= j ) continue;
tAnd = (i & j);
tOr = (i | j);
tXor = (i ^ j);
max_and = ((tAnd > max_and) && (tAnd <k)) ? tAnd : max_and;
max_or = ((tOr > max_or) && (tOr <k)) ? tOr : max_or;
max_xor = ((tXor > max_xor) && (tXor < k)) ? tXor : max_xor;
}
printf("%d\n%d\n%d", max_and, max_or, max_xor);
}