Напечатать индексы всех седловых точек матрицы - C (СИ)
Формулировка задачи:
1) Элемент матрицы назовем седловой точкой, если он наименьший в своей строке и наибольший (одновременно) в своем столбце (или наоборот, наибольший в своей строке и наименьший в своем столбце). Для заданной целой матрицы размером 10 x 12 напечатать индексы всех ее седловых точек
вот код
нужно сделать через указатели
#include "stdafx.h" #include "stdafx.h" #include <conio.h> #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) { int i,j,n,m,minj; i = 0; j = 0; int a[100][100]; printf("BBeguTe koJlu4ecTBo cTpok:\n"); scanf("%d", &n); printf("BBeguTe koJlu4ecTBo CToJl6lLoB:\n"); scanf("%d", &m); for(i=0;i<n;i++) for(j=0;j<m;j++); for (i=0;i<n;i++) for (j=0;j<m;j++) { printf("BBeguTe 3JleMeHT [%d,%d]\n", i+1, j+1); scanf("%f",&a[i][j]); } for(i=0;i<n;i++) {minj=0; for(j=1;j<m;j++) if(a[i][j]<a[i][minj]) minj=j; for(j=0;j<n;j++) if(a[j][minj]>a[i][minj] && j!=i)break; if(j==n) printf("[%d][%d]\n",i+1,minj+1); } getch(); return 0; }
Решение задачи: «Напечатать индексы всех седловых точек матрицы»
textual
Листинг программы
#include <iostream> using namespace std; const int M = 3; const int N = 3; void input(int **a) { cout<<"Input data: \n"; for (int i=0; i<M; i++) { for(int j=0; j<N; j++) { cin>>a[i][j]; } } } void output(int **a) { cout<<"Output data: \n"; for (int i=0; i<M; i++) { for (int j=0; j<N; j++) cout<<a[i][j]<<" "; cout<<"\n"; } } void del(int **a) { for (int i = 0; i<M; i++) { delete [] a[i]; } delete [] a; } void cedlovaTochka(int **a) { int minj; int i, j; for (i=0; i<M; i++) { minj = 0; for (j=1; j<N; j++) { if (a[i][j] < a[i][minj]) minj = j; } for(j=0; j<M; j++) { if(a[j][minj] > a[i][minj] && j != i) break; } if(j == M) cout<<"["<<i+1<<"]"<<"["<<minj+1<<"]\n"; } } int main() { int **a = new int *[M]; for (int i=0; i<M; i++) a[i] = new int[N]; input(a); output(a); cedlovaTochka(a); del(a); return 0; }
Объяснение кода листинга программы
В этом коде реализуется алгоритм поиска седловых точек в квадратной матрице. Список функций и их назначение:
- Функция
input
используется для ввода данных в матрицу. - Функция
output
используется для вывода данных из матрицы. - Функция
del
используется для освобождения памяти, выделенной под матрицу. - Функция
cedlovaTochka
используется для поиска индексов седловых точек матрицы. Список действий в функцииmain
: - Выделяется память под матрицу.
- В матрицу вводятся данные.
- Выводится содержимое матрицы.
- Находятся индексы седловых точек матрицы.
- Выделяемая память освобождается.
- Возвращается 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д