В текстовом файле хранится целочисленная матрица. Заменить в ней все числа, кратные 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; }
Объяснение кода листинга программы
- Объявление переменных:
FILE *in, *out;
- указатели на файлы для чтения и записиint array[n][n];
- целочисленный массив размером n на nint i,j,max_el,count=0;
- целочисленные переменные для управления циклом и подсчета количества чисел, кратных 7
- Открытие файла
input.txt
для чтения и проверка на ошибки - Чтение целочисленной матрицы из файла в массив
array
- Поиск количества чисел, кратных 7, в матрице
- Если количество таких чисел равно 0, выводится сообщение
No elements to replace!
и программа завершается - Поиск максимального элемента в матрице и сохранение его в переменной
max_el
- Замена всех чисел, кратных 7, на максимальное значение
max_el
- Печать измененной матрицы на экран
- Открытие файла
input.txt
для записи и проверка на ошибки - Запись измененной матрицы в файл
input.txt
- Закрытие файлов
in
иout
- Возврат 0, что означает успешное выполнение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д