В текстовом файле хранится целочисленная матрица. Заменить в ней все числа, кратные 7, наибольшим значением матрицы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В текстовом файле хранится целочисленная матрица. Заменить в ней все числа, кратные 7, наибольшим значением матрицы. Исходные текстовые файлы могут создаваться в любом текстовом редакторе.

Решение задачи: «В текстовом файле хранится целочисленная матрица. Заменить в ней все числа, кратные 7, наибольшим значением матрицы»

textual
Листинг программы
#include<stdio.h>
#define n 3
 
int main()
{
  FILE *in, *out;
  int array[n][n];
  int i,j,max_el,count=0;
 
  if((in=fopen("input.txt","r"))== NULL)
   { printf("\nREAD ERROR!!\n");
     return 1;
   }
 
  for(i=0;i<n;i++)      //чтение из файла
    {
        for(j=0;j<n;j++)
            {
                fscanf(in,"%d",&array[i][j]);
                printf("%d ",array[i][j]);
                if(array[i][j]%7==0)    // проверка на делимость
                    count++;
            }
       printf("\n");
    }
 fclose(in);
 
 if(count==0)    //если нет элементов, которые делятся на 7, то не продолжаем
 {
     printf("No elements to replace!\n");
     return 0;
 }
max_el=array[0][0];    // поиск макс элемента
  for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            {
                if(array[i][j]>max_el)
                    max_el=array[i][j];
            }
    }
 
for(i=0;i<n;i++)  //замена элемента
    {
        for(j=0;j<n;j++)
            {
                if(array[i][j]%7==0)
                    array[i][j]=max_el;
            }
    }
 
printf("\nTranformed matrix:\n");   //печать измененной матрицы
for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            {
                printf("%d ",array[i][j]);
            }
       printf("\n");
    }
if((out=fopen("input.txt","w"))== NULL)
   { printf("\nWRITE ERROR!!\n");
     return 1;
   }
 
for(i=0;i<n;i++)    // запись в тот же файл, откуда читали, перезапись
    {
        for(j=0;j<n;j++)
            {
                fprintf(out,"%d ",array[i][j]);
            }
       fprintf(out,"\n");
    }
 fclose(out);
 
  return 0;
}

Объяснение кода листинга программы

  1. Объявление переменных:
    • FILE *in, *out; - указатели на файлы для чтения и записи
    • int array[n][n]; - целочисленный массив размером n на n
    • int i,j,max_el,count=0; - целочисленные переменные для управления циклом и подсчета количества чисел, кратных 7
  2. Открытие файла input.txt для чтения и проверка на ошибки
  3. Чтение целочисленной матрицы из файла в массив array
  4. Поиск количества чисел, кратных 7, в матрице
  5. Если количество таких чисел равно 0, выводится сообщение No elements to replace! и программа завершается
  6. Поиск максимального элемента в матрице и сохранение его в переменной max_el
  7. Замена всех чисел, кратных 7, на максимальное значение max_el
  8. Печать измененной матрицы на экран
  9. Открытие файла input.txt для записи и проверка на ошибки
  10. Запись измененной матрицы в файл input.txt
  11. Закрытие файлов in и out
  12. Возврат 0, что означает успешное выполнение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы