Определить площадь сечения (общей части) прямоугольников - C (СИ)
Формулировка задачи:
Задано N прямоугольников со сторонами, параллельными осям координат (известны координатами верхнего левого и нижнего углов). Нужно определить площадь сечения (общей части) этих прямокутницив.
Решение задачи: «Определить площадь сечения (общей части) прямоугольников»
textual
Листинг программы
#include <stdio.h> int main () { int a[100][100]={0}, ii, i, j, N, x1,y1,x2,y2, s=0; scanf("%d", &N); for(ii=0; ii<N; ii++) { scanf("%d%d%d%d", &x1,&y1,&x2,&y2); for(i=0; i<100; i++) for(j=0; j<100; j++) if(i<y2 || i>=y1 || j<x1 || j>=x2) a[i][j]=1; } for(i=0; i<100; i++) for(j=0; j<100; j++) if(a[i][j]==0) s++; printf("%d\n", s); }
Объяснение кода листинга программы
Вывод:
- Подключение необходимых библиотек для работы с вводом/выводом (stdio.h).
- Объявление переменных:
a
- массив 100x100, инициализированный нулями, используемый для отслеживания прямоугольников.ii
- счетчик для внешнего цикла, который считывает количество прямоугольников.i
,j
- счетчики для внутренних циклов, используемые для обхода массива.N
- количество прямоугольников, считываемое с помощью функцииscanf
.x1
,y1
,x2
,y2
- координаты прямоугольников, считываемые с помощью функцииscanf
.s
- счетчик, используемый для подсчета площади.
- Считывание количества прямоугольников с помощью функции
scanf
. - Внешний цикл, который выполняется N раз, считывая координаты каждого прямоугольника.
- Внутренний цикл, который перебирает каждый элемент массива
a
, устанавливая его равным 1, если элемент находится внутри одного из прямоугольников. - Внутренний цикл, который перебирает каждый элемент массива
a
, и если элемент равен 0, увеличивает значение счетчикаs
. - Вывод значения счетчика
s
с помощью функцииprintf
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д