Определить площадь сечения (общей части) прямоугольников - 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);    
}

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

Вывод:

  1. Подключение необходимых библиотек для работы с вводом/выводом (stdio.h).
  2. Объявление переменных:
    • a - массив 100x100, инициализированный нулями, используемый для отслеживания прямоугольников.
    • ii - счетчик для внешнего цикла, который считывает количество прямоугольников.
    • i, j - счетчики для внутренних циклов, используемые для обхода массива.
    • N - количество прямоугольников, считываемое с помощью функции scanf.
    • x1, y1, x2, y2 - координаты прямоугольников, считываемые с помощью функции scanf.
    • s - счетчик, используемый для подсчета площади.
  3. Считывание количества прямоугольников с помощью функции scanf.
  4. Внешний цикл, который выполняется N раз, считывая координаты каждого прямоугольника.
  5. Внутренний цикл, который перебирает каждый элемент массива a, устанавливая его равным 1, если элемент находится внутри одного из прямоугольников.
  6. Внутренний цикл, который перебирает каждый элемент массива a, и если элемент равен 0, увеличивает значение счетчика s.
  7. Вывод значения счетчика s с помощью функции printf.

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


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

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

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