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

/*Пример 3. Совмещение описания структуры, структурных переменных и инициализации в одном предложении */

#include <stdio.h>

main()

{

struct Student

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

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

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

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

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

}

S, S1, S2={ "Рыбкин",

"Река Сож",

1988,

{5,4,5,4},

0

};

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("\n"); puts("Для структуры S:");

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

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

S.Age,S.Adress);

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

S1=S; // S и S1 соответствуют одному шаблону

printf("\n"); puts("Для структуры S1(совпадает с S):");

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

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

S1.Age, S1.Adress);

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

sr=0;

for(i=0;i<=3;i++) sr=sr+S2.oc[i];

sr=sr/4; S2.sr=sr;

printf("\n");

puts("Для структуры S2, инциализированной при описании:");

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

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

S2.Age, S2.Adress);

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

fflush(stdin); getchar();

return(0);

}

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

Введите адрес студента Петушковa ул. Снежная, д.7, кв. 17

Для структуры S:

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

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

Для структуры S1(совпадает с S):

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

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

Для структуры S2, инциализированной при описании:

Средний балл студента Рыбкина 1988 года рождения,

проживающего по адресу: Река Сож, равен 4.50

/*Пример4. Вложенные структуры. Описание. Обращение к полям*/

#include <stdio.h>

main()

{

struct fios // Описание вкладываемой структуры

{ char *f,*im,*ot; };

typedef struct Student // Описание собственного типа MY_Student

{ struct fios fio; // Фамилия - структура

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