Вывести данные о комнате, в которой наименьшая площадь - C (СИ)
Формулировка задачи:
Задача:
Дана информация о пяти комнатах в общежитии: фамилии проживающих, номер комнаты, площадь, этаж. Вывести данные о комнате, в которой наименьшая площадь в программе использовать указатели. Как правильно организовать вывод данных о комнате, в которой наименьшая площадь и куда вставить в программу указатели. Код C#include <string.h>
#include <conio.h>
#include <stdio.h>
int main()
{
struct Student{char name[20]; int nomer; int ploshad; int etage;} st[20];
int i,n,f,p,r;
n=0;
f=0;
p=0;
r=0;
puts("Vvedite kolvo komnat, ne menee 5: ");
scanf("%d",&n);
if(n<=5)
{printf("Eror!\n");
return 0 ;
}
puts("Vvedite svedenija v formate: familija [nomer komnati] - ploshad etag");
for(i=0;i<n;i++)
scanf("%s %d %d %d",&st[i].name,&st[i].nomer,&st[i].ploshad,&st[i].etage);
for(i=0;i<n;i++)
{if (st[i].ploshad >5)
printf("%s [%d] - %d %d\n",st[i].name,st[i].nomer,st[i].ploshad,st[i].etage); }
getch();
return 0;
}Решение задачи: «Вывести данные о комнате, в которой наименьшая площадь»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
int main() {
struct Student {
char name[20];
int nomer;
int ploshad;
int etage;
} st[20], * p, * min;
unsigned i, n = 0;
puts("Vvedite kolvo komnat, ne menee 5: ");
scanf("%u", &n);
if (n <= 5) {
printf("Eror!\n");
return 1;
}
puts("Vvedite svedenija v formate: familija [nomer komnati] - ploshad etag");
p = st; i = n;
while (i--) {
scanf("%s %d %d %d", p->name, &p->nomer, &p->ploshad, &p->etage);
p++;
}
min = st;
p = st + 1; i = n - 1;
while (i--) {
if (p->ploshad < min->ploshad) {
min = p;
}
p++;
}
printf("%s [%d] - %d %d\n", min->name, min->nomer, min->ploshad, min->etage);
system("pause");
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек
- Объявление структуры
Studentс полями: name (строка до 20 символов), nomer (целое число), ploshad (целое число), etage (целое число) - Создание массива структур
Studentна 20 элементов и указателя на первый элемент этого массива - Ввод количества комнат с клавиатуры (не меньше 5)
- Если количество комнат меньше или равно 5, то выводится сообщение об ошибке и программа завершается
- Вывод сообщения с просьбой ввести данные в формате: фамилия [номер комнаты] - площадь этажа
- Цикл, в котором происходит считывание данных из клавиатуры для каждой комнаты
- Поиск комнаты с наименьшей площадью. Для этого используется указатель
min, который ищет минимальное значение площади среди всех комнат - Вывод на экран данных о комнате с наименьшей площадью
- Завершение работы программы