Пример задачи с использованием структурированных данных

Рассмотрим пример программы, в которой вводится информация об абонентах сети: ФИО, телефон и возраст. В программе выбираются абоненты моложе 25 лет и их список выводится в алфавитном порядке.

 

#include "stdafx.h"

#include<conio.h>

#include<stdlib.h>

typedef struct abon //описание структуры

{ char f[10],i[10],o[10];

long tel;

int voz;

}ABON;

const int n=5;

 

int i,k,j;

int main()

{ ABON z[n],y[n]; //описание массивов структур

ABON х;

for (i=0; i<n; i++)//ввод в цикле исходной информации о пяти абонентах

{printf("Введите ФИО абонента:");

scanf("%s%s%s",z[i].f, z[i].i, z[i].o);

printf("введите его телефон и возраст:");

scanf("%ld%d",&z[i].tel,&z[i].voz);

}

printf("---------------------------------------------------\n");

printf("| Фамилия | Имя | Отчество| Телефон | Возраст |\n");

printf("---------------------------------------------------\n");

for (i=0;i<n;i++) //вывод в цикле информации о пяти абонентах

printf("|%9s|%8s|%9s|%7ld | %5d |\n", z[i].f,z[i].i,z[i].o, z[i].tel,z[i].voz);

}

printf("---------------------------------------------------\n");

for (i=0;i<n;i++)

{if(z[i].voz<25) // поиск абонента моложе 25 лет

y[k++]=z[i];

}

for(i=1;i<k;i++) //сортировка списка абонентов моложе 25 лет

for(j=k-1;j>=i;j--)

if(y[j].f[0]<y[j-1].f[0])

{x=y[j];

y[j]=y[j-1];

y[j-1]=x;}

printf("mologe 25\n");

printf("---------------------------------------------------\n");

printf("| Фамилия | Имя | Отчество| Телефон | Возраст |\n");

printf("---------------------------------------------------\n");

for (i=0;i<k;i++) // вывод отсортированного списка

{printf("|%9s|%8s|%9s|%7ld | %5d |\n", y[i].f,y[i].i, y[i].o, y[i].tel,y[i].voz);

}

printf("---------------------------------------------------\n");

return 0;

}

Полем структурной переменной может быть переменная любого типа, в том числе другая структурная переменная. Поле, представляющее собой структуру, называется вложенной структурой.

Файлы данных