Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <conio.h>
- #include <iostream>
- #include <iomanip>
- #include <fstream>
- using namespace std;
- /*
- Дано дійсну матрицю M x N, яка не містить однакових елементів. В кожному рядку вибрати елемент з найменшим значенням, потім серед цих чисел
- вибрати найбільше. Вказати індекси елемента із знайденим значенням.
- меню в котором
- инициализация
- 1. с клавы
- 2. рандом
- 3. с файла ( если файл поврежеден или пустой, то сделат ькакую то проверку, чтоб писало , шо файлу пиздец)
- так же чтоб писало в меню, когда выбираешь , что вводить только цифры, она просто вводит буквы и все вылетает
- */
- void Print(int **a, int N,int M)
- {
- for(int i = 0; i < N; i++)
- {
- for(int j = 0; j < M; j++)
- {
- cout << a[i][j] << "\t";
- }
- cout << endl;
- }
- cout << endl << endl;
- }
- int Min(int *a, int N, int &index)
- {
- int min = INT_MAX;
- for (int i = 0; i < N; i++) if (min > a[i]) { min = a[i]; index = i; }
- return min;
- }
- void Input(int **a, int N, int M)
- {
- cout << "1. Из клавы " << endl;
- cout << "2. Из файла " << endl;
- cout << "3. рандом " << endl;
- char c; cin >> c; int k = 0;
- if (c == '1') {
- cout << "Ввод только чисел от " << INT_MIN << " до " << INT_MAX << endl;
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < M; j++)
- {
- cout << "A[" << i << "][" << j << "] = ";
- cin >> a[i][j];
- }
- }
- }
- else if (c == '2') {
- ifstream in("txt.txt");
- if (!in.is_open()) { cerr << "Ошибка открытия файла" << endl; exit(-1); }
- for (int i = 0; i < N; i++) {
- for (int j = 0; j < M; j++)
- {
- in >> a[i][j];
- // cout << a[i][j] << '\t';
- }
- // cout << endl;
- }
- // cout << endl;
- }
- else if (c == '3') {
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < M; j++)
- {
- a[i][j] = rand() % 101 - 50;
- // cout << a[i][j] << '\t';
- }
- // cout << endl;
- }
- }
- else { cout << "Ошибка ввода" << endl; exit(-1); }
- }
- int main()
- {
- setlocale(LC_ALL, "Rus");
- // Дана целочисленная матрица размера N? N. Заменить в данной матрице все элементы побочной диагонали числом 0.
- int N, M;
- cout << "\n Введите количество строк ";
- cin >> N;
- cout << "\n Введите количество столбцов ";
- cin >> M;
- int** a = new int*[N];
- for (int i = 0; i<N; i++)
- a[i] = new int[M];
- Input(a, N, M);
- Print(a,N,M);
- int in = 0, in2 = 0;
- int m1 = Min(a[0], N, in);
- for (int i = 0; i < N; i++)
- {
- if (m1 < Min(a[i], M, in)) { m1 = Min(a[i], M, in); in2 = i; };
- cout << "Мiнiмальний елемент " << i + 1 << " рядка "<< Min(a[i], M, in) << ", iндекс елемента " << in << endl;
- }
- cout << endl;
- cout << "Максимальний iз мiнiмальних " << m1 << ",рядок " << in2 << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement