Advertisement
SteelK

IsSimmetrMas

Jul 3rd, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. //Функция создания квадратного массива размером n
  7. int **CreateMas(int n) {
  8.     int **mas = new int*[n];
  9.     for (int i = 0; i < n; i++)
  10.         mas[i] = new int[n];
  11.     return mas;
  12. }
  13.  
  14. //Функция ввода значений в квадратный массив размером n
  15. void CinMas(int **mas, int n) {
  16.     for (int i = 0; i < n; i++)
  17.         for (int j = 0; j < n; j++)
  18.             cin >> mas[i][j];
  19. }
  20.  
  21. //Функция проверки квадратного массива на симметричность
  22. bool IsSimetrMas(int **mas, int n) {
  23.     int x = 1, i = 1, j = 0; //Вводим пременную x = 1, что бы в дальнейшем избежать проверки самой главной диагонали
  24.     while (j < n){
  25.         while (i < n) {
  26.             if(mas[i][j] == mas[j][i]){
  27.                 i++;
  28.             }
  29.             else return false; //Если хотя бы один символ отличается от симметричного, массив не прошел проверку
  30.         }
  31.         j++;
  32.         i = ++x;
  33.     }
  34.     return true;
  35. }
  36.  
  37. int main(){
  38.     setlocale(0, "");
  39.    
  40.     cout << "Введите размер массива" << endl;
  41.     int n;
  42.     cin >> n;
  43.     int **mas = CreateMas(n);
  44.    
  45.     cout << "Введите элементы массива" << endl;
  46.     CinMas(mas, n);
  47.    
  48.     if(IsSimetrMas(mas, n))
  49.         cout << "Массив симметричен." << endl;
  50.     else
  51.         cout << "Массив не является симметричным." << endl;
  52.  
  53.     return 0;
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement