Постановка задачі. Написати програму, яка вводить масив записів про країни Європи (назва, столиця, кількість населення, площа, кількість міст).
Програма повинна знайти і вивести на екран дані про країни у порядку зростання кількості населення.
Текст програми мовою С
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{int i, j;
struct dani
{char nazva[20];
char stol[20];
int nasel;
int plos;
int mist; } infor[3], a;
for(i=0;i<3;i++)
{puts("Vvedit nazvy krajinu");
scanf("%s",infor[i].nazva);
puts("Vvedit nazvy stoluci");
scanf("%s",infor[i].stol);
puts("Vvedit kilkist naselennya");
scanf("%d",&infor[i].nasel);
puts("Vvedit ploschy");
scanf("%d",&infor[i].plos);
puts("Vvedit kilkist mist");
scanf("%s",&infor[i].mist);}
for(j=0;j<3;j++)
for(i=j;i<3;i++)
{
if(infor[i].nasel>infor[i+1].nasel)
{a=infor[i];
infor[i]=infor[i+1];
infor[i+1]=a;}
}
puts("Vuvid sortonanogo spusky");
for(i=0;i<3;i++)
printf("%s\n %s\n %d\n %d\n %d\n ", infor[i].nazva, infor[i].stol, infor[i].nasel,
infor[i].plos, infor[i].mist);}
Тестовий приклад
Якщо ми введемо:
Poland Warchava 34 789 5600
France Paris 87 565 8400
Ukraine Kiyv 52 988 24000
То на екрані ми маємо отримати відсортований масив:
Poland Warchava 34 789 5600
Ukraine Kiyv 52 988 2400
France Paris 87 565 84000
Контрольні запитання
1. Які способи ініціалізації структур даних Ви знаєте?
2. Яка різниця між структурою та об’єднанням?
3. Як описати масив структур?
4. Як можна отримати доступ до поля елемента структури?
5. Який тип структури називається бітовим полем?
6. Чому в бітових полях не можна використовувати елементи типу float чи double?
8. Чому структури називають типом даних користувача?