Определение площади фигуры с использованием структуры - 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; }
Объяснение кода листинга программы
- Объявление переменных и массивов:
int i,j,y,n,k;
- вспомогательные переменные для циклаint mass[5],masf[5];
- массивы для хранения площадей и индексовstruct PR_UG 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;
- вычисление площади и сохранение в массивеmass
masf[i]=i;
- сохранение индекса прямоугольника в массивеmasf
- Сортировка массива площадей
пузырьком
: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;
- завершение работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д