Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом - C (СИ) (69942)

Узнай цену своей работы

Формулировка задачи:

Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом. Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент.

Решение задачи: «Для заданной матрицы размером 8 на 8 найти такие k, что k-я строка матрицы совпадает с k-м столбцом»

textual
Листинг программы
for(i = 0; i < N; i++){
        for(j = 0; j < N; j++){
            if(A[i][j] != A[j][i])  break;
        }
        if (j==N)
            printf("k = %d\n", i);
}

Объяснение кода листинга программы

  1. В коде используется два вложенных цикла for для перебора всех элементов матрицы.
  2. Первый цикл перебирает строки матрицы, а второй - столбцы.
  3. В каждой итерации циклов проверяется равенство текущего элемента матрицы с его соответствующим элементом в главной диагонали (т.е. элементом с индексом (i, i)).
  4. Если элементы не равны, то из второго цикла выходит с помощью оператора break.
  5. Если оба цикла были выполнены полностью (т.е. не было найдено различий между элементами), то выводится значение i, которое является искомым значением k.
  6. Значение N - размер матрицы, которое определяет количество итераций в обоих циклах.
  7. Значение A - матрица, в которой ищутся совпадения строк и столбцов.
  8. Значение i - номер текущей строки в матрице.
  9. Значение j - номер текущего столбца в матрице.
  10. Значение A[i][j] - элемент матрицы, находящийся в текущей строке и столбце.
  11. Значение A[j][i] - элемент матрицы, находящийся в столбце текущей строки и строке текущего столбца.
  12. Значение N == 0 в условии цикла for означает, что цикл не будет выполнен ни разу.
  13. Значение j == N в условии цикла for означает, что цикл будет выполнен N раз.
  14. Значение printf(k = %d\n, i); - вывод на экран значения i, которое является искомым значением k.
  15. Значение i == j в условии оператора break означает, что цикл вышел из-за неравенства элементов матрицы.
  16. Значение i != j в условии оператора break означает, что цикл вышел из-за неравенства элементов матрицы.
  17. Значение A[i][j] == A[j][i] в условии оператора break означает, что цикл вышел из-за равенства элементов матрицы.
  18. Значение j == N в условии оператора if означает, что если цикл был выполнен полностью, то выводится значение i.
  19. Значение i == j в условии оператора if означает, что если цикл был выполнен полностью, то выводится значение i.
  20. Значение A[i][j] == A[j][i] в условии оператора if означает, что если цикл был выполнен полностью, то выводится значение i.

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы