Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "subroutines.h"
- int subroutine_2(string fname_1, string fname_2, int n)
- {
- double *matrix = new double[n * n];
- if (matrix == NULL) {
- return -1;
- }
- double *vector = new double[n];
- if (vector == NULL) {
- free(vector);
- return -2;
- }
- fstream fp_1(fname_1, fstream::in);
- if (!fp_1.is_open()) {
- free(matrix);
- free(vector);
- return 1;
- }
- fstream fp_2(fname_2, fstream::out);
- if (!fp_2.is_open()) {
- fp_1.close();
- free(matrix);
- free(vector);
- return 2;
- }
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++)
- fp_1 >> matrix[i * n + j];
- }
- fp_1.close();
- int pos = 0;
- double max = -INT_MAX;
- for (int i = 0; i < n; i++) {
- double temp = 0;
- for (int j = 0; j < n; j++) {
- temp += abs(matrix[i * n + j]);
- }
- if (temp > max) {
- max = temp;
- pos = i;
- }
- }
- for (int i = 2; i < n; i++)
- vector[i - 2] = matrix[pos * n + i];
- vector[n - 2] = matrix[pos * n];
- vector[n - 1] = matrix[pos * n + 1];
- for (int i = 0; i < n; i++) {
- fp_2 << std::fixed;
- fp_2 << setw(9) << setprecision(3) << vector[i] << " ";
- }
- fp_2.close();
- free(matrix);
- free(vector);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement