Advertisement
VictoriaLodochkina

lab 10 z2 fatal error

Dec 27th, 2019
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. void kratno(double **mas1, int x1, int y1, double **mas2, int x2, int y2);
  5. void nekratno(double **mas1, int x1, int y1, double **mas2, int x2, int y2);
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.     int n1, m1;
  12.     cout << "Enter n1 and m1: " << endl;
  13.     cin >> n1 >> m1;
  14.     double* * A = new double*[n1];
  15.     for (int i = 0; i < n1; i++)
  16.         A[i] = new double[m1];
  17.     for (int i = 0; i < n1; i++)
  18.         for (int j = 0; j < m1; j++)
  19.             cin >> A[i][j];
  20.     int n2, m2;
  21.     cout << "Enter n2 and m2: " << endl;
  22.     cin >> n2 >> m2;
  23.     double* * B = new double*[n2];
  24.     for (int i = 0; i < n2; i++)
  25.         B[i] = new double[m2];
  26.     for (int i = 0; i < n2; i++)
  27.         for (int j = 0; j < m2; j++)
  28.             cin >> B[i][j];
  29.     double sumA = 0;
  30.     double sumB = 0;
  31.     for (int i = 0; i < n1; i++)
  32.         for (int j = 0; j < m1; j++)
  33.             sumA += A[i][j];
  34.     for (int i = 0; i < n2; i++)
  35.         for (int j = 0; j < m2; j++)
  36.             sumB += B[i][j];
  37.     double p;
  38.     double rez = modf(sumA / sumB, &p);
  39.     if (rez == 0)
  40.     {
  41.         kratno(A, n1, m1, B, n2, m2);
  42.     }
  43.     else
  44.     {
  45.         nekratno(A, n1, m1, B, n2, m2);
  46.     }
  47.     for (int i = 0; i < n1; i++)
  48.     {
  49.         cout << endl;
  50.         for (int j = 0; j < m1; j++)
  51.             cout << A[i][j] << " ";
  52.     }
  53.     for (int i = 0; i < 3; i++)
  54.     {
  55.         cout << endl;
  56.     }
  57.     for (int i = 0; i < n2; i++)
  58.     {
  59.         cout << endl;
  60.         for (int j = 0; j < m2; j++)
  61.             cout << B[i][j] << " ";
  62.     }
  63.     return 0;
  64. }
  65.  
  66. void kratno(double **mas1, int x1, int y1, double **mas2, int x2, int y2)
  67. {
  68.     double temp1, temp2;
  69.     for (int i = 0; i < y1; i++)
  70.     {
  71.         temp1 = mas1[0][i];
  72.         mas1[0][i] = mas1[x1][i];
  73.         mas1[x1][i] = temp1;
  74.     }
  75.     /*for (int i = 0; i < x1; i++)
  76.     {
  77.         cout << endl;
  78.         for (int j = 0; j < y1; j++)
  79.             cout << mas1[i][j] << " ";
  80.     }
  81.     cout << endl;*/
  82.     //для второй матрицы так же написать
  83.     for (int i = 0; i < y2; i++)
  84.     {
  85.         temp2 = mas2[0][i];
  86.         mas2[0][i] = mas2[x2][i];
  87.         mas2[x2][i] = temp2;
  88.     }
  89.     /*for (int i = 0; i < x2; i++)
  90.     {
  91.         cout << endl;
  92.         for (int j = 0; j < y2; j++)
  93.             cout << mas2[i][j] << " ";
  94.     }*/
  95. }
  96. void nekratno(double **mas1, int x1, int y1, double **mas2, int x2, int y2)
  97. {
  98.     double temp1, temp2;
  99.     for (int i = 0; i < y1; i++)
  100.     {
  101.         temp1 = mas1[0][i];
  102.         mas1[0][i] = mas1[x1][i];
  103.         mas1[x1][i] = temp1;
  104.     }
  105.     /*for (int i = 0; i < x1; i++)
  106.     {
  107.         cout << endl;
  108.         for (int j = 0; j < y1; j++)
  109.             cout << mas1[i][j] << " ";
  110.     }
  111.     cout << endl;*/
  112.     //для второй матрицы так же написать
  113.     for (int i = 0; i < 2; i++)
  114.     {
  115.         temp2 = mas2[1][i];
  116.         mas2[1][i] = mas2[x2 - 1][i];
  117.         mas2[x2 - 1][i] = temp2;
  118.     }
  119.     /*for (int i = 0; i < x2; i++)
  120.     {
  121.         cout << endl;
  122.         for (int j = 0; j < y2; j++)
  123.             cout << mas2[i][j] << " ";
  124.     }*/
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement