Предмет: Информатика, автор: ulianka322

Програмування мовою C
50 балів

У файл F1.txt попередньо записати матрицю цілих чисел А(N,N)
(згенерувати випадковим чином, N задати довільно, як константу
препроцесора). Прочитати матрицю з файлу, виконати описані нижче дії, їх
результати записати в файл F2.txt.

Знайти суму додатніх елементів, які розміщені під головною діагоналлю і
суму від’ємних елементів, які розміщені над головною діагоналлю.

Ответы

Автор ответа: CallMeShepard
1

#include <stdio.h>

#include <stdlib.h>

#define N 5 // Размерность матрицы

int main(void) {

   int i, j, matrix[N][N], /*Наша матрица из файла F1.txt*/

   positiveSum = 0, /*Сумма положительных элементов под диагональю*/

   negativeSum = 0; /*Сумма отрицательных элементов над диагональю*/

   FILE *f = fopen("F1.txt", "r");

   if (!f) { // Если файл указанного типа не найден будет выведена ошибка

       printf("Error: can't find file F1.txt\n");

       return 1;

   }

   // Считываем данные из файла F1.txt и заносим их в матрицу

   for (i = 0; i < N; i++) {

       for (j = 0; j < N; j++) {

           if (!fscanf(f, "%d", &matrix[i][j])) {

               break;

           }

       }

   }

   printf("F1.txt\n");  // Выводим на экран

   for (i = 0; i < N; i++) {

       for (j = 0; j < N; j++) {

           printf("%d\t", matrix[i][j]);

       }

       printf("\n");

   }

   printf("\n");

// Производим расчет суммы положительных и отрицательных элементов

   for (i = 0; i < N; i++) {

       for (j = 0; j < N; j++) {

           if (i > j && matrix[i][j] > 0) {

               positiveSum += matrix[i][j] ;

           }

           else if (i < j && matrix[i][j] < 0) {  

               negativeSum += matrix[i][j] ;

           }

       }

   }

   printf("Positive Sum: %d\n", positiveSum); // Выводим на экран сумму положительных чисел

   printf("Negative Sum: %d\n\n", negativeSum); // Выводим на экран сумму отрицательных чисел

 // Записываемся в файл F2.txt

   fclose(f);

   f = fopen("F2.txt", "w");

   if (!f) {

       printf("Error: can't open file F2.txt\n");

       return 2;

   }

   // Запись результатов в файл

   fprintf(f, "Positive Sum: %d\nNegative Sum: %d\n", positiveSum, negativeSum);

   printf("The data was written to F2.txt\n");

return 0;

}

Похожие вопросы