Advertisement
Guest User

Untitled

a guest
May 29th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.30 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <conio.h>
  3. #include <iostream>
  4. #include <iomanip>
  5. #include <fstream>
  6. using namespace std;
  7. /*
  8. Дано дійсну матрицю M x N, яка не містить однакових елементів. В кожному рядку вибрати елемент з найменшим значенням, потім серед цих чисел
  9. вибрати найбільше. Вказати індекси елемента із знайденим значенням.
  10. меню в котором
  11. инициализация
  12. 1. с клавы
  13. 2. рандом
  14. 3. с файла ( если файл поврежеден или пустой, то сделат ькакую то проверку, чтоб писало , шо файлу пиздец)
  15. так же чтоб писало в меню, когда выбираешь , что вводить только цифры, она просто вводит буквы и все вылетает
  16. */
  17. void Print(int **a, int N,int M)
  18. {
  19.     for(int i = 0; i < N; i++)
  20.     {
  21.         for(int j = 0; j < M; j++)
  22.         {
  23.             cout << a[i][j] << "\t";
  24.         }
  25.     cout << endl;
  26.     }
  27.     cout << endl << endl;
  28. }
  29. int Min(int *a, int N, int &index)
  30. {
  31.     int min = INT_MAX;
  32.     for (int i = 0; i < N; i++) if (min > a[i]) { min = a[i]; index = i; }
  33.  
  34.     return min;
  35. }
  36. void Input(int **a, int N, int M)
  37. {
  38.     cout << "1. Из клавы " << endl;
  39.     cout << "2. Из файла " << endl;
  40.     cout << "3. рандом "   << endl;
  41.     char c; cin >> c; int k = 0;
  42.     if (c == '1') {
  43.         cout << "Ввод только чисел от " << INT_MIN << " до " << INT_MAX << endl;
  44.         for (int i = 0; i < N; i++)
  45.         {
  46.             for (int j = 0; j < M; j++)
  47.             {
  48.                 cout << "A[" << i << "][" << j << "] = ";
  49.                 cin >> a[i][j];
  50.             }
  51.         }
  52.  
  53.     }
  54.     else if (c == '2') {
  55.         ifstream in("txt.txt");
  56.         if (!in.is_open()) { cerr << "Ошибка открытия файла" << endl; exit(-1); }
  57.         for (int i = 0; i < N; i++) {
  58.             for (int j = 0; j < M; j++)
  59.             {
  60.                 in >> a[i][j];
  61.                 // cout << a[i][j] << '\t';
  62.             }
  63.             // cout << endl;
  64.         }
  65.     // cout << endl;
  66.     }
  67.     else if (c == '3') {
  68.         for (int i = 0; i < N; i++)
  69.         {
  70.             for (int j = 0; j < M; j++)
  71.             {
  72.                 a[i][j] = rand() % 101 - 50;
  73.                 // cout << a[i][j] << '\t';
  74.             }
  75.             // cout << endl;
  76.         }
  77.     }
  78.     else { cout << "Ошибка ввода" << endl; exit(-1); }
  79. }
  80.  
  81.  
  82. int main()
  83. {
  84.     setlocale(LC_ALL, "Rus");
  85.     // Дана целочисленная матрица размера N? N. Заменить в данной матрице  все элементы побочной диагонали числом 0.
  86.     int N, M;
  87.    
  88.     cout << "\n Введите количество строк ";
  89.     cin >> N;
  90.     cout << "\n Введите количество столбцов ";
  91.     cin >> M;
  92.     int** a = new int*[N];
  93.     for (int i = 0; i<N; i++)
  94.         a[i] = new int[M];
  95.     Input(a, N, M);
  96.     Print(a,N,M);
  97.     int in = 0, in2 = 0;
  98.     int m1 = Min(a[0], N, in);
  99.     for (int i = 0; i < N; i++)
  100.     {
  101.         if (m1 < Min(a[i], M, in)) { m1 = Min(a[i], M, in); in2 = i; };
  102.         cout << "Мiнiмальний елемент  " << i + 1 << " рядка "<< Min(a[i], M, in) << ", iндекс елемента " << in << endl;
  103.  
  104.     }
  105.  
  106.     cout << endl;
  107.     cout  << "Максимальний iз мiнiмальних " << m1 << ",рядок " << in2 << endl;
  108.     system("pause");
  109.     return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement