Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Стуктуры данных.doc
Скачиваний:
4
Добавлен:
24.11.2018
Размер:
91.65 Кб
Скачать

Массивы структурных переменных

Описание массива структур не отличается от описания массива обычных переменных.

Пример:

Struct Man

{

char fio[31]; // ФИО

Int year; // Год рождения

float pay; // Оклад

};

Man d[100], *p=d; // массив структур из 100 элементов и

// указатель, инициализированный адресом

//первого элемента массива

Примеры обращения к полям:

d[i].year, (*(d+i)).year, (d+i)->year

/* Примеры программ работы со структурами */

Пример 1.

#include <stdio.h>

main()

{

/* Описание шаблона структуры */

struct Student

{ char *fio; // Фамилия - указатель на char

char Adress[40]; // Адрес - строка

Int Age; // Возраст - целое

Int oc[4]; // Оценки - целочис. Массив

float sr; // Средний балл - вещественное

} ;

struct Student S; // Описание структурной переменной S

int i;

float sr;

S.fio="Петушков"; //Присваивание полю значения

printf("Введите адрес студента %sa ",S.fio);

gets(S.Adress); //Ввод значения поля

S.Age=1987;

S.oc[0]=3; S.oc[1]=5; S.oc[2]=4; S.oc[3]= S.oc[2];

sr=0; //Вычисление

for(i=0;i<=3;i++) sr=sr+S.oc[i]; //среднего

sr=sr/4; S.sr=sr; //балла

printf(" Средний балл студента %sа",S.fio);

printf(" %d года рождения,\n проживающего по адресу: %s,",

S.Age,S.Adress);

printf(" равен %5.2f\n",S.sr);

fflush(stdin); getchar();

return(0);

}

Вид экрана после выполнения программы:

Введите адрес студента Петушковa ул. Солнечная, д.1, кв. 4

Средний балл студента Петушкова 1987 года рождения,

проживающего по адресу: ул. Солнечная, д.1, кв. 4, равен 4.00

/*Пример 2. Совмещение описания шаблона структуры и структурной переменной*/

#include <stdio.h>

main()

{

/* Описание шаблона структуры и структурной переменной */

struct Student

{ char *fio; // Фамилия - указатель на char

char Adress[40]; // Адрес - строка

Int Age; // Возраст - целое

Int oc[4]; // Оценки - целочис. Массив

float sr; // Средний балл - вещественное

} S; // Структурная переменная

int i;

float sr;

S.fio="Петушков"; //Присваивание полю значения

printf("Введите адрес студента %sa ",S.fio);

gets(S.Adress); //Ввод значения поля

S.Age=1987;

S.oc[0]=3; S.oc[1]=5; S.oc[2]=4; S.oc[3]= S.oc[2];

sr=0; //Вычисление

for(i=0;i<=3;i++) sr=sr+S.oc[i]; //среднего

sr=sr/4; S.sr=sr; //балла

printf(" Средний балл студента %sа",S.fio);

printf(" %d года рождения,\n проживающего по адресу: %s,",

S.Age,S.Adress);

printf(" равен %5.2f\n",S.sr);

fflush(stdin); getchar();

return(0);

}

Вид экрана после выполнения программы:

Введите адрес студента Петушковa ул. Солнечная, д.1, кв. 4

Средний балл студента Петушкова 1987 года рождения,

проживающего по адресу: ул. Солнечная, д.1, кв. 4, равен 4.00