Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //1. Количество строк, содержащих хотя бы один нулевой элемент.
- int IfHaveZero(int**arr, int N)
- {
- int k=0;
- for(int i = 0; i < N; i++)
- {
- for(int j = 0; j < N; j++)
- {
- if (arr[i][j] == 0)
- {
- k++;
- break;
- }
- }
- }
- return k;
- }
- //2.Количество седловых точек матрицы.
- //Матрица A имеет седловую точку A[i][j], если A[i][j] является минимальным элементом в i-ой строке и максимальным в j-ом столбце
- bool IsMax (int i, int j,int**arr,int N)
- {
- int max=arr[i][j];
- for(int i=0;i<N;i++)
- if(max<arr[i][j])
- return false;
- return true;
- }
- bool IsMin (int i, int j,int**arr,int N)
- {
- int min=arr[i][j];
- for(int j=0;j<N;j++)
- if(min>arr[i][j])
- return false;
- return true;
- }
- int SaddlePoints(int**arr, int N)
- {
- int k=0;
- for (int i = 0; i<N;i++)
- for (int j = 0; j<N;j++)
- {
- if(IsMin(i,j,arr,N) && IsMax(i,j,arr,N))
- {
- k++;
- }
- }
- return k;
- }
- #include <iostream>
- using namespace std;
- int main()
- {
- try
- {
- setlocale(LC_ALL, "rus");
- int n;
- cout << "Введите порядок матрицы : ";
- cin>>n;
- int**arr = new int*[n];
- for (int i = 0; i < n; i++)
- arr[i] = new int[n];
- int k=0;
- cout << "Введите элементы массива : " << endl;
- for (int i = 0; i < n; i++)
- {
- for (int j = 0;j<n;j++)
- {
- cout << "[" << i+1 << "," << j+1 << "] ";
- cin >> arr[i][j];
- }
- }
- cout << "Получившийся массив :" << endl;
- for(int i = 0; i < n; i++)
- {
- for(int j = 0; j < n; j++)
- cout << arr[i][j] << ", ";
- cout << endl;
- }
- cout << "Строки с нулем : " << IfHaveZero(arr,n) <<endl;
- cout << "Количество седловых точек матрицы : " << SaddlePoints(arr,n) <<endl;
- }
- catch (const char*errStr)
- {
- cout <<errStr;
- }
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement