Года рождения

Студент Иванов

4 5 4 3

Студент Рыбкин Сом Язевич 1988 года рождения,

Студент Петушков Петр Петрович 1987 года рождения,

Студент Петушков Петр Петрович 1987 года рождения,

1988,

1988,

{5,4,5,4},

};

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]; // Адрес - строка

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

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

float sr; // Средняя успеваемость - вещественное

} MY_Student;

MY_Student S,S1, S2={

{"Рыбкин", "Сом", "Язевич"},

"Река Сож",

{5,4,5,4},

};

int i;

float sr; //Средний балл

// Определение структуры s

S.fio.f="Петушков";

S.fio.im="Петр";

S.fio.ot="Петрович";

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

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 %s",S.fio.f, S.fio.im, S.fio.ot);

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

S.Age, S.Adress);

printf(" имеет средний балл= %5.2f\n",S.sr);

S1=S; //

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

printf(" Студент %s %s %s",S1.fio.f, S1.fio.im, S1.fio.ot);

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

S1.Age, S1.Adress);

printf(" имеет средний балл= %5.2f\n",S1.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 %s %s",S2.fio.f, S2.fio.im, S2.fio.ot);

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

S2.Age, S2.Adress);

printf(" имеет средний балл= %5.2f\n", S2.sr);

fflush(stdin); getchar();

return(0);

}

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

Введите адрес студента Петушковa ул. Зеленая, д. Белый

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

проживающий по адресу: ул. Зеленая, д. Белый, имеет средний балл= 4.00

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

проживающий по адресу: ул. Зеленая, д. Белый, имеет средний балл= 4.00

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

проживающий по адресу: Река Сож, имеет средний балл= 4.50

/* Пример 5. Структурные переменные и указатели */

#include <stdio.h>

main()

{

typedef struct Student

{ char fio[30]; // Фамилия - строка

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

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

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

float sr; // Средняя успеваемость - вещественное

} MY_Student;

MY_Student *S3, // Указатель на структуру

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

int i;

float sr;

char *t;

printf("Фамилия? "); gets(S4.fio);

printf("Адрес? "); gets(S4.Adress);

printf("Возраст? "); scanf("%d",&S4.Age);

puts ("Четыре экзаменационные оценки?");

scanf("%d %d %d %d", &S4.oc[0], &S4.oc[1], &S4.oc[2], &S4.oc[3]);

sr=0;

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

sr=sr/4; S4.sr=sr;

printf("\n"); puts(" Для структуры S4:");

printf(" Студент %s \n",S4.fio);

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

S4.Age,S4.Adress);

printf(" имеет средний балл= %5.2f\n",S4.sr);

S3=&S4; //Указателю присваивается значение адреса

S3->Age=1984; //Обращение к полю

S3->oc[0]=3;

sr=0;

for(i=0;i<=3;i++) sr=sr+S3->oc[i];

sr=sr/4; S3->sr=sr;

fflush(stdin); printf(" Новая фамилия? "); gets(S3->fio);

printf("\n"); puts(" Для структуры S3 (частично совпадает с S4):");

printf(" Студент %s ",S3->fio);

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

S3->Age,S3->Adress);

printf(" имеет средний балл= %5.2f\n",S3->sr);

fflush(stdin); getchar();

return(0);

}

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

Фамилия? Иванов

Адрес? ул. Гагарина

Возраст? 1987

Четыре экзаменационные оценки?

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

проживающий по адресу: ул. Гагарина, имеет средний балл= 4.00

Новая фамилия? Сидоров

Для структуры S3(частично совпадает с S4):


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: