Определение площади фигуры с использованием структуры - C (СИ)

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

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

Народ, помогите : маленькая задачка на структуру: Описать структуру прямоугольника ( ширина, сторона( как я понял эт высота) ). Ввести данные по нескольким прямоугольникам и определить параметры прямоугольника с наименьшей площадью.
int main()
{  struct pr_ug {                 //прямоугольник
                       int sh;//ширина
                       int st; //высота
                       } x[4], *p;
                 x={{10,10},{5,5},{7,7},{6,6}} ;
Правильно ли я написал ? И что делать дальше. ПЛЗ напишите

Решение задачи: «Определение площади фигуры с использованием структуры»

textual
Листинг программы
#include <stdio.h>
 
int main(void)
{  
  int i,j,y,n,k;              // вспомогательные переменные
  int mass[5],masf[5];        // и массивы
  struct PR_UG               // структура "прямоугольник"
  {
    int sh;                   // ширина
    int st;                   // высота
  }figure[4];
  
  n=4;
  for(i=0;i<n;i++)            // заполнение массива структур
  {
    printf("\n Prymougolnik %d\n", i+1);
    printf("\n Vvedite shirinu: ");
    scanf("%d",&figure[i].sh);
    printf("\n Vvedite visotu: ");
    scanf("%d",&figure[i].st);
  }
  
  for(i=0;i<n;i++)            // вычисляем площади прямоугольников
  {
    mass[i]=figure[i].sh*figure[i].st;
    masf[i]=i;
  }
  
  for(i=0;i<n;i++)           // сортировка "пузырьком"
  {
    for(j=n-1;j>i;j--) 
    {
      if(mass[j-1]>mass[j] ) 
      {
      y=mass[j-1];
      mass[j-1]=mass[j];
      mass[j]=y;
      k=masf[j-1];
      masf[j-1]=masf[j];
      masf[j]=k;
      }
    }
  }
  
  printf("\n Prymougolnik so storonami %d i %d imeet menshuu ploshyd %d",figure[masf[0]].sh,figure[masf[0]].st,mass[0]);
  getch();
  return 0;
}

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

  1. Объявление переменных и массивов:
    • int i,j,y,n,k; - вспомогательные переменные для цикла
    • int mass[5],masf[5]; - массивы для хранения площадей и индексов
    • struct PR_UG figure[4]; - массив структур для хранения данных о прямоугольниках
  2. Заполнение массива структур:
    • n=4; - количество прямоугольников
    • for(i=0;i<n;i++) - цикл для заполнения каждой структуры в массиве
    • printf(\n Prymougolnik %d\n, i+1); - вывод номера прямоугольника
    • printf(\n Vvedite shirinu: ); - запрос на ввод ширины прямоугольника
    • scanf(%d,&figure[i].sh); - считывание ширины в переменную структуры
    • printf(\n Vvedite visotu: ); - запрос на ввод высоты прямоугольника
    • scanf(%d,&figure[i].st); - считывание высоты в переменную структуры
  3. Вычисление площадей прямоугольников:
    • for(i=0;i<n;i++) - цикл для вычисления площади каждого прямоугольника
    • mass[i]=figure[i].sh*figure[i].st; - вычисление площади и сохранение в массиве mass
    • masf[i]=i; - сохранение индекса прямоугольника в массиве masf
  4. Сортировка массива площадей пузырьком:
    • for(i=0;i<n;i++) - цикл для прохода по всем элементам массива
    • for(j=n-1;j>i;j--) - вложенный цикл для сортировки элементов от большего к меньшему
    • if(mass[j-1]>mass[j] ) - условие для сравнения элементов
    • y=mass[j-1]; - временное сохранение значения большего элемента
    • mass[j-1]=mass[j]; - обмен значениями элементов
    • mass[j]=y; - обмен значениями элементов
    • k=masf[j-1]; - временное сохранение индекса элемента
    • masf[j-1]=masf[j]; - обмен индексами элементов
    • masf[j]=k; - обмен индексами элементов
  5. Вывод информации о прямоугольнике с наименьшей площадью:
    • printf(\n Prymougolnik so storonami %d i %d imeet menshuu ploshyd %d,figure[masf[0]].sh,figure[masf[0]].st,mass[0]); - вывод информации о прямоугольнике с наименьшей площадью
  6. Ввод для подтверждения получения информации:
    • getch(); - функция для ввода символа подтверждения
  7. Завершение программы:
    • return 0; - завершение работы программы

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


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

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

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