Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <windows.h>
- #include "unit.h"
- using namespace std;
- int main(int argc, char **argv) {
- SetConsoleOutputCP(1251);
- int n, m;
- int **mtrx;
- int *arr;
- // Open files
- FILE *inp_file, *out_file;
- inp_file = fopen(argv[1], "r");
- if (inp_file == NULL) {
- printf("Невозможно открыть файл, с исходными данными\n");
- return 0;
- }
- out_file = fopen(argv[2], "w");
- if (out_file == NULL) {
- printf("Невозможно открыть файл для записи результатов\n");
- fclose(inp_file);
- return 0;
- }
- // Read data
- fscanf(inp_file, "%d %d\n", &n, &m);
- if (n < 1) {
- printf("Размер матрицы должен быть больше 0\n");
- fclose(inp_file);
- fclose(out_file);
- return 0;
- }
- if (m < 1) {
- printf("Размер массива должен быть больше 0\n");
- fclose(inp_file);
- fclose(out_file);
- return 0;
- }
- // Initialize matrix and array
- mtrx = new int *[n];
- for (int i = 0; i < n; i++)
- mtrx[i] = new int [n];
- arr = new int [m];
- // Read matrix and array
- read_matrix(inp_file, n, mtrx);
- read_array(inp_file, m, arr);
- // Write using data
- fprintf(out_file, "Исходные данные:\n");
- fprintf(out_file, "%d %d\n", n, m);
- write_matrix(out_file, n, mtrx);
- write_array(out_file, m, arr);
- // Process data
- int pos_sum = get_posi_sum_of_matrix(mtrx, n);
- int neg_sum = get_neg_sum_of_array(arr, m);
- if (pos_sum > number_module(neg_sum)) {
- for (int i = 0; i < n; i++)
- for (int j = 0; j < n; j++)
- mtrx[i][j] += pos_sum;
- for (int i = 0; i < m; i++)
- arr[i] += pos_sum;
- }
- // Write data
- fprintf(out_file, "\nОбработанные данные:\n");
- fprintf(out_file, "%d %d\n", pos_sum, neg_sum);
- write_matrix(out_file, n, mtrx);
- write_array(out_file, m, arr);
- // Close files
- fclose(inp_file);
- fclose(out_file);
- // Clear memory
- delete [] arr;
- for (int i = 0; i < n; i++)
- delete [] mtrx[i];
- delete [] mtrx;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment