Вывести данные о квартирах с самой большой площадью и самой маленькой - C (СИ)
Формулировка задачи:
Задание 5: Структуры
Дана информация о пяти квартирах. Запись имеет вид: фамилия владельца,
площадь, число комнат, этаж. Вывести данные о квартирах с самой большой
площадью и самой маленькой.
все что смог сделал
#include <stdio.h> #include <stdlib.h> #include<string.h> #define n 5 main() { int i, j; struct kvar {char fam[n];float q; int kom; int e;} t; struct kvar w[n]; printf("\n Vvedite Information o Kvartirah"); for(i=0;i<n;i++) {printf("\n Familia fladelca, ploshad', chislo komnat, etazh:\n"); scanf("%s%f%i%i", &t.fam, &t.q, &t.kom, &t.e); w[i]=t; } }
Решение задачи: «Вывести данные о квартирах с самой большой площадью и самой маленькой»
textual
Листинг программы
#include <stdio.h> #define SIZE 5 struct apartment{ float area ; short rooms ; short floor ; char *surname; }; void apartemntPrint(struct apartment *apt){ printf("\r\n area = %f \r\n rooms = %d \r\n floor = %d \r\n surname = %s \r\n", apt->area, apt->rooms, apt->floor, apt->surname); } int main(int argc, char *argv[]){ struct apartment min, max, apt[SIZE] = {{40.1, 2, 1, "Petrov"}, {60.7, 1, 2, "Ivanov"}, {80, 3, 13, "Lenin"}, {20.4, 1, 15, "Berija"}, {140, 6, 11, "Korolev"}} ; min = apt[0]; max = apt[0]; for(int i = 1 ; i < SIZE ; i++){ min = min.area > apt[i].area ? apt[i] : min ; max = max.area < apt[i].area ? apt[i] : max ; } printf("\r\n min area \r\n"); apartemntPrint(&min) ; printf("\r\n max area \r\n"); apartemntPrint(&max) ; return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с файлами и структурой
include
include
- Определяем размер массива структур
define SIZE 5
- Создаем структуру
квартира
со следующими полями: площадь, количество комнат, этаж и фамилия владельца struct apartment{ float area ; short rooms ; short floor ; char surname[20]; }; - Создаем функцию вывода информации о квартире
void apartemntPrint(struct apartment *apt){
printf(
\r\n area = %f \r\n rooms = %d \r\n floor = %d \r\n surname = %s \r\n
, apt->area, apt->rooms, apt->floor, apt->surname); } - Создаем основную функцию программы, в которой происходит поиск квартир с минимальной и максимальной площадью
int main(int argc, char *argv[]){
struct apartment min, max, apt[SIZE] =
{{40.1, 2, 1,
Petrov
}, {60.7, 1, 2,Ivanov
}, {80, 3, 13,Lenin
}, {20.4, 1, 15,Berija
}, {140, 6, 11,Korolev
}} ; min = apt[0]; max = apt[0]; for(int i = 1 ; i < SIZE ; i++){ min = min.area > apt[i].area ? apt[i] : min ; max = max.area < apt[i].area ? apt[i] : max ; } printf(\r\n min area \r\n
); apartemntPrint(&min) ; printf(\r\n max area \r\n
); apartemntPrint(&max) ; return 0; } - Код начинается с инициализации массива структур
квартира
с пятью элементами. Значения площади, количества комнат и этажа берутся произвольно, а фамилии владельцев задаются какPetrov
,Ivanov
,Lenin
,Berija
иKorolev
. - Затем создаются две переменные min и max, которые будут использоваться для хранения минимальной и максимальной площади квартир соответственно.
- Далее происходит цикл по всем элементам массива, кроме первого, с целью найти минимальную и максимальную площадь. В каждой итерации цикла текущий элемент сравнивается с элементом min и max, и если его площадь больше или меньше, то он заменяет min или max соответственно.
- После завершения цикла выводятся значения min и max с помощью функции apartemntPrint.
- Значения площади и количества комнат в квартирах могут быть изменены в соответствии с требованиями задачи.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д