Массивы структур
Структурный тип «struct ID_структуры», как правило, используют для декларации массивов, элементами которых являются структурные переменные. Это позволяет создавать программы, оперирующие с простейшими базами данных.
Например, массив структур, объявленного ранее типа:
struct Person spisok[100];
причем ключевое слово struct можно не писать. Декларацию массива можно выполнить и в описании шаблона следующим образом:
struct Рerson {
char fio[40];
int day, month, year;
} spisok[100];
В данном случае обращение к полю, например, day элемента массива с индексом i может быть выполнено одним из следующих способов:
spisok[i].day=22; *(spisok+i).day=22; (spisok+i)–>day=22;
Пример. Приведем часть программы, иллюстрирующей создание массива структур и передачу структурных данных в функции:
struct Spisok {
char Fio[20];
double S_Bal;
};
// Описание прототипов функций пользователя
void Out(int, Spisok);
void In(int, Spisok *);
void main(void)
{
Spisok Stud[50], *sved;
. . .
for(i=0;i<N;i++)
Vvod(i, &Stud[i]);
puts("\n Spisok Students");
for(i=0;i<N;i++)
Out(i+1, Stud[i]);
. . .
}
// Функция вывода на экран данных одного элемента структуры
void Out(int nom, Spisok dan) {
printf("\n %3d – %20s %4.2lf ",nom, dan.Fio, dan.S_Bal);
}
// Функция ввода данных одного элемента структуры
void In (int nom, Spisok *sved) {
printf("\n Введите сведения %d : ", nom+1);
fflush(stdin);
puts("\n ФИО – ");
gets(sved–>Fio);
puts("\n Средний балл – ");
scanf(“%lf”, &sved–>S_Bal);
}
Дата добавления: 2014-12-30; просмотров: 629;