Вывести сведения о самом старшем и о самом младшем абитуриенте - C (СИ)
Формулировка задачи:
Сведения об абитуриентах состоят из фамилии, имени, адреса, года рождения и среднего балла аттестата.
б) Вывести сведения о самом старшем и о самом младшем абитуриенте
#include <stdio.h>
#include <conio.h>
struct svedenie
{ char fio[20];
char name[20];
char adr[20];
int god;int sredni ball;}
main()
{ struct svedenie a;
int i; -----
for(i=1;i<n;i++)
{ puts("fio=");gets(a[i].fio);
puts("name=");gets(a[i].name);
puts("adr=");gets(a[i].adr);
printf("god=");scanf("%f",a[i].god);
printf("sredni ball=");scanf("%f",a[i].sredni ball);
}
--------------------------------------А как найти самую старшую и самую младшего абитуриента!!! И как вывести сведения!!!
Решение задачи: «Вывести сведения о самом старшем и о самом младшем абитуриенте»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
struct svedenie
{ char fio[20];
char name[20];
char adr[20];
int god;int sredni ball;}
main()
{ struct svedenie a;
int i; -----
for(i=1;i<n;i++)
{ puts("fio=");gets(a[i].fio);
puts("name=");gets(a[i].name);
puts("adr=");gets(a[i].adr);
printf("god=");scanf("%f",a[i].god);
printf("sredni ball=");scanf("%f",a[i].sredni ball);
int max = a[0].god;
int min = a[0].god;
if (max < a[i].god) { max = a[i].god; }
if (min > a[i].god]) { min = a[i].god; }
}
int j;
int indvzrosliy;
int indmladshiy;
for(j=1; j<n ; j++)
{
if (max==a[j].god) { indvzrosliy = j; }
if (min==a[j].god) { indmladshiy = j; }
}
printf("Samiy starshiy student: \n fio: %s \n name: %s \n adr: %s n\ god: %d \n sredni ball: %d \n",a[indvzrosliy].fio,a[indvzrosliy].name,a[indvzrosliy].adr,a[indvzrosliy].god,a[indvzrosliy].sredni ball);
printf("Samiy mladshiy student: \n fio: %s \n name: %s \n adr: %s n\ god: %d \n sredni ball: %d \n",a[indmladshiy].fio,a[indmladshiy].name,a[indmladshiy].adr,a[indmladshiy].god,a[iindmladshiy].sredni ball);
}
--------------------------------------
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с консолью и структурой данных.
- Определяется структура данных
svedenie, которая содержит поля для хранения информации об абитуриентах. - Задается функция main(), которая является точкой входа в программу.
- Создается переменная
aтипаsvedenie, которая будет использоваться для хранения информации об абитуриентах. - Задается цикл for для сбора информации об абитуриентах. В каждой итерации цикла, пользователю предлагается ввести информацию о следующем абитуриенте.
- Внутри цикла, с помощью функции scanf(), происходит чтение информации о возрасте абитуриента и сохранение ее в соответствующем поле структуры
a. - Создаются две переменные
maxиminдля хранения минимального и максимального возраста абитуриентов соответственно. - Инициализируются переменные
maxиminзначением первого возраста, который был введен пользователем. - Используя операторы if, происходит сравнение введенных возрастов с текущими значениями
maxиmin. Если возраст текущего абитуриента больше или меньше, чем текущее значениеmaxилиminсоответственно, то обновляются значения этих переменных. - Создаются две новые переменные
indvzrosliyиindmladshiyдля хранения индексов самого старшего и самого младшего абитуриентов соответственно. - Задается цикл for для поиска самого старшего и самого младшего абитуриента.
- Внутри цикла, с помощью операторов if, происходит проверка равенства текущего возраста значению
max. Если это так, то обновляется значение переменнойindvzrosliy. Аналогично, проверяется равенство текущего возраста значениюminи, при необходимости, обновляется значение переменнойindmladshiy. - Выводятся сведения о самом старшем абитуриенте с помощью функции printf().
- Выводятся сведения о самом младшем абитуриенте с помощью функции printf().