- •Записи (структуры)
- •Описание структуры
- •1. Описание шаблона структуры
- •2. Описание структурной переменной Синтаксис описания шаблона структуры:
- •Int Age; // Возраст - целое
- •Int oc[4]; // Оценки - целочис. Массив
- •Синтаксис описания структурной переменной:
- •Совмещение описания шаблона структуры и структурной переменной Синтаксис описания:
- •Совмещение описания шаблона, описания структурных переменных и инициализации полей в одном предложении
- •Использование описания пользовательского (собственного) типа данных для описания структуры
- •1. Описание пользовательского типа
- •2. Описание переменных Синтаксис описания:
- •Int Age; // Возраст - целое
- •Int oc[4]; // Оценки - целочис. Массив
- •/* Вложенные структуры. Описание. Обращение к полям */
- •1. Описание вкладываемой структуры
- •2. Описание вложенной структуры и структурных переменных
- •Int Age; // Возраст - целое
- •Int oc[4]; // Оценки - целочис. Массив
- •Int Age; // Возраст - целое
- •Int oc[4]; // Оценки - целочис. Массив
- •Массивы структурных переменных
- •Int year; // Год рождения
- •/* Примеры программ работы со структурами */
- •/* Описание шаблона структуры */
- •Int Age; // Возраст - целое
- •Int oc[4]; // Оценки - целочис. Массив
- •/*Пример 2. Совмещение описания шаблона структуры и структурной переменной*/
- •Int Age; // Возраст - целое
- •Int oc[4]; // Оценки - целочис. Массив
- •/*Пример 3. Совмещение описания структуры, структурных переменных и инициализации в одном предложении */
- •Int Age; // Возраст - целое
- •Int oc[4]; // Оценки - целочис. Массив
- •Int Age; // Возраст - целое
- •Int oc[4]; // Оценки - целочис. Массив
- •Int Age; // Возраст - целое
- •Int oc[4]; // Оценки - целочис. Массив
- •1987 Года рождения,
- •Int year; // год рожд.
Массивы структурных переменных
Описание массива структур не отличается от описания массива обычных переменных.
Пример:
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