Я знаю, что есть тема об объяснении !
в C, но я не понял его полностью, поэтому здесь мы идем. Из моего понимания number!
возвращают 0 для ненулевого числа и 1 для 0. Я видел несколько кода в Интернете и определить, если матрица единичной матрицы люди использовали что-то вдоль линий:Восклицательный знак в массиве C (идентификационная матрица)
for (i = 0; i < row; i++)
{
for (j = 0; j < column; j++)
{
if (a[i][j] != 1 && a[j][i] != 0)
{
flag = 0;
break;
}
}
}
if (flag == 1)
printf("It is identity matrix \n");
else
printf("It is not a identity matrix \n");
С пользователь вводит размер матрицы и значения с матрицей. Мой вопрос заключается в том, как !
пометка поможет в любом случае определить, является ли это идентификационной матрицей или нет, если все, что она может сделать, это вернуть вход 1 и 0. И будет ли другой способ идентифицировать матрицу идентичности без использования?
Здесь '!' Является частью оператора '! =', Что означает «не равно». Вы, кажется, ошибаетесь в этом для оператора «логического отрицания». –
'a! = B' равнозначно'! (A == b) '. – alk