Определить номера строк и столбцов всех седловых точек матрицы - C (СИ)
Формулировка задачи:
Дана целочисленная прямоугольная матрица. Определить:
1) сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент;
2) номера строк и столбцов всех седловых точек матрицы.
ПРИМЕЧАНИЕ:
Матрица А имеет седловую точку Аij, если Aij является минимальным элементом в i-й строке и максимальным в j-м столбце.
Матрица 8x8
Листинг программы
- int matrix[8][8] = {
- { 2, 7, 2, 7, 1, 4, 0, 3 },
- { 1, 0, 7, 6, 0, -8, 3, 5 },
- { 2, 7, 1, 8, 1, 4, 9, 3 },
- { 9, 2, 8, 5, 2, 0, 0, 6 },
- { 7, 1, 1, 3, 9, 3, 9, 1 },
- { 8, 2, 4, 9, 1, -6, 4, 9 },
- { 0, 3, 9, 0, 9, 4, 8, 8 },
- { 1, 8, 3, 2, 8, 2, 8, 0 }
- };
Решение задачи: «Определить номера строк и столбцов всех седловых точек матрицы»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- int matrix[8][8] = {
- { 2, 7, 2, 7, 1, 4, 0, 3 },
- { 1, 0, 7, 6, 0, -8, 3, 5 },
- { 2, 7, 1, 8, 1, 4, 9, 3 },
- { 9, 2, 8, 5, 2, 0, 0, 6 },
- { 7, 1, 1, 3, 9, 3, 9, 1 },
- { 8, 2, 4, 9, 1, -6, 4, 9 },
- { 0, 3, 9, 0, 9, 4, 8, 8 },
- { 1, 8, 3, 2, 8, 2, 8, 0 }
- };
- int min_row(int n)
- {
- int j, k, m;
- k = 0;
- m = matrix[n][0];
- for(j = 1; j < 8; j++)
- if(matrix[n][j]<m){
- m = matrix[n][j];
- k = j;
- }
- return k;
- }
- int max_column(int n)
- {
- int j, k, m;
- k = 0;
- m = matrix[0][n];
- for(j = 1; j < 8; j++)
- if(matrix[j][n]>m){
- m = matrix[j][n];
- k = j;
- }
- return k;
- }
- int main()
- {
- int sum, negative;
- int i, j;
- for(i = 0; i < 8; i++){
- for(j = 0; j < 8; j++)
- printf("%d\t", matrix[i][j]);
- printf("\n");
- }
- printf("Сумма элементов в строках с хотя бы одним отрицательным элементом:\n");
- for(i = 0; i < 8; i++){
- sum = 0;
- negative = 0;
- for(j = 0; j < 8; j++){
- if(matrix[i][j] < 0)
- negative = 1;
- sum += matrix[i][j];
- }
- if(negative == 1)
- printf("Строка: %d,\tсумма:%d\n", i, sum);
- }
- printf("Седловые точки:\n");
- for(i = 0; i < 8; i++){
- j = min_row(i);
- if(max_column(j) == i)
- printf("Строка: %d,\tСтолбец: %d\n", j, i);
- }
- return 0;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д