Вывести данные о квартирах с самой большой площадью и самой маленькой - 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;
}

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

  1. Включаем необходимые заголовочные файлы для работы с файлами и структурой

    include

    include

  2. Определяем размер массива структур

    define SIZE 5

  3. Создаем структуру квартира со следующими полями: площадь, количество комнат, этаж и фамилия владельца struct apartment{ float area ; short rooms ; short floor ; char surname[20]; };
  4. Создаем функцию вывода информации о квартире 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); }
  5. Создаем основную функцию программы, в которой происходит поиск квартир с минимальной и максимальной площадью 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; }
  6. Код начинается с инициализации массива структур квартира с пятью элементами. Значения площади, количества комнат и этажа берутся произвольно, а фамилии владельцев задаются как Petrov, Ivanov, Lenin, Berija и Korolev.
  7. Затем создаются две переменные min и max, которые будут использоваться для хранения минимальной и максимальной площади квартир соответственно.
  8. Далее происходит цикл по всем элементам массива, кроме первого, с целью найти минимальную и максимальную площадь. В каждой итерации цикла текущий элемент сравнивается с элементом min и max, и если его площадь больше или меньше, то он заменяет min или max соответственно.
  9. После завершения цикла выводятся значения min и max с помощью функции apartemntPrint.
  10. Значения площади и количества комнат в квартирах могут быть изменены в соответствии с требованиями задачи.

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

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