Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include "subroutines.h"
  2.  
  3. int subroutine_2(string fname_1, string fname_2, int n)
  4. {
  5.     double *matrix = new double[n * n];
  6.     if (matrix == NULL) {
  7.         return -1;
  8.     }
  9.  
  10.     double *vector = new double[n];
  11.     if (vector == NULL) {
  12.         free(vector);
  13.         return -2;
  14.     }
  15.  
  16.     fstream fp_1(fname_1, fstream::in);
  17.     if (!fp_1.is_open()) {
  18.         free(matrix);
  19.         free(vector);
  20.         return 1;
  21.     }
  22.  
  23.     fstream fp_2(fname_2, fstream::out);
  24.     if (!fp_2.is_open()) {
  25.         fp_1.close();
  26.         free(matrix);
  27.         free(vector);
  28.         return 2;
  29.     }
  30.  
  31.     for (int i = 0; i < n; i++) {
  32.         for (int j = 0; j < n; j++)
  33.             fp_1 >> matrix[i * n + j];
  34.     }
  35.     fp_1.close();
  36.  
  37.     int pos = 0;
  38.     double max = -INT_MAX;
  39.    
  40.     for (int i = 0; i < n; i++) {
  41.  
  42.         double temp = 0;
  43.         for (int j = 0; j < n; j++) {
  44.             temp += abs(matrix[i * n + j]);
  45.         }
  46.         if (temp > max) {
  47.             max = temp;
  48.             pos = i;
  49.         }
  50.  
  51.     }
  52.  
  53.     for (int i = 2; i < n; i++)
  54.         vector[i - 2] = matrix[pos * n + i];
  55.     vector[n - 2] = matrix[pos * n];
  56.     vector[n - 1] = matrix[pos * n + 1];
  57.  
  58.     for (int i = 0; i < n; i++) {
  59.         fp_2 << std::fixed;
  60.         fp_2 << setw(9) << setprecision(3) << vector[i] << " ";
  61.     }
  62.     fp_2.close();
  63.  
  64.     free(matrix);
  65.     free(vector);
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement