Заменить нулями все элементы матрицы, расположенные на главной диагонали - C (СИ)
Формулировка задачи:
В файле F1 задано матрицу чисел А (12,12) заменить нулями все элементы, расположенные на главной диагонали и находятся в диапазоне заданных чисел a и b.
Решение задачи: «Заменить нулями все элементы матрицы, расположенные на главной диагонали»
textual
Листинг программы
#include <stdio.h> #define SZ 12 /*размерность матрицы*/ void main(void) { FILE *file; int A[SZ][SZ],i,j; int a,b; file=fopen("F1","rt"); if(file==NULL){puts("\nОшибка открытия файла."); return;} /*читаем матрицу из файла*/ for(i=0;i<SZ;i++) for(j=0;j<SZ;j++) fscanf(file,"%d",&A[i][j]); fclose(file); puts("\nВведите величину a:");scanf("%d",&a); puts("\nВведите величину b:");scanf("%d",&b); for(i=0;i<SZ;i++) { if(A[i][i] >= a && A[i][i] <= b) A[i][i]=0; /*проверяем главную диагональ и меняем элементы*/ } /*Выводим на экран новую матрицу*/ puts("\nМатрица после замены:\n"); for(i=0;i<SZ;i++) { for(j=0;j<SZ;j++) printf("%4d ",A[i][j]); puts("\n"); } }
Объяснение кода листинга программы
- Включаем заголовочный файл, который содержит функции ввода-вывода
- Определяем размерность матрицы (SZ)
- Объявляем переменные:
- A - двумерный массив, представляющий собой матрицу
- i, j - индексы для обхода матрицы
- a, b - величины, с которыми сравниваются элементы главной диагонали
- Открываем файл
F1
для чтения - Читаем матрицу из файла, используя два вложенных цикла
- Закрываем файл
- Выводим сообщение с просьбой ввести значения a и b
- Считываем значения a и b с помощью функции scanf
- Используя вложенный цикл, проверяем каждый элемент главной диагонали и заменяем его нулем, если он находится в заданном диапазоне
- Выводим на экран новую матрицу, используя вложенный цикл для обхода всех элементов матрицы
- Завершаем программу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д