Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Краткие теоретические сведения. Структура – это структурированный тип данных, представляющий собой поименованную совокупность разнотипных элементов





Структура – это структурированный тип данных, представляющий собой поименованную совокупность разнотипных элементов. Тип структура обычно используется при разработке информационных систем, баз данных.

Формат описания структурного типа следующий:

struct имя_типа

{определения_элементов};

В конце обязательно ставится точка с запятой (это оператор). Элементы структуры называются полями. Каждому полю должно быть поставлено в соответствие имя и тип.

Например, сведения о выплате студентам стипендии требуется организовать в виде:

|

struct student {char fam[30];

int kurs;

char grup[5];

float stip;};

После этого student становится именем структурного типа, который может быть назначен некоторым переменным. В соответствии со стандартом СИ это нужно делать так:

struct student stud1, stud2;

Здесь stud1 и stud2 – переменные структурного типа.

Допускается и другой вариант описания структурных переменных, когда можно вообще не задавать имя типа, а описывать сразу переменные:

struct {char fam[30];

int kurs;

char grup[5];

float stip;

} stud1, stud2, *pst;

В этом примере кроме двух переменных структурного типа объявлен указатель pst на такую структуру.

Обращение к полям структурной величины производится с помощью уточненного имени следующего формата:

имя_структуры. имя_элемента

Примеры уточненных имен для описанных выше переменных:

stud1.fam; stud1.stip;

Значения элементов структуры могут определяться вводом, присваиванием, инициализацией. Пример инициализации в описании:

student stud1={“Кротов”, 3, “ПО313”, 350};

Пусть в программе определен указатель на структуру

student *pst, stud1;

Тогда после выполнения оператора присваивания

pst=&stud1;

к каждому элементу структурной переменной stud1 можно обращаться тремя способами. Например, для поля fam

stud1.fam или (*pst).fam или pst->fam

В последнем варианте используется знак операции доступа к элементу структуры: ->. Аналогично можно обращаться и к другим элементам этой переменной.

Допускается использование массивов структур. Например, сведения о 100 студентах могут храниться в массиве, описанном следующим образом:

student stud[100];

Тогда сведения об отдельных студентах будут обозначаться, например, так: stud[1].fam, stud[5].kurs и т.п. Если нужно взять первую букву фамилии 25-го студента, то следует писать: stud[25].fam[0].

Пример 1. Ввести сведения об N студентах. Определить фамилии студентов, получающих самую высокую стипендию.

# include <stdio.h>

# include <conio.h>

void main()

{ const N=30; int i; long maxs;

struct student {char fam[15];

int kurs;

char grup[3];

long stip; };

student stud[N];

clrscr();

for (i=0; i<N; i++)

{ printf(“%d-й студент”,i);

printf(“\n”Фамилия:”); scanf(“%s”,&stud[i].fam);

printf(“Курс:”); scanf(“%d”,&stud[i].kurs);

printf(“Группа:”); scanf(“%s”,&stud[i].grup);

printf(“Стипендия:”); scanf(“%ld”,&stud[i].stip); }

maxs=0;

for (i=0; i<N; i++)

if (stud[i].stip>maxs) maxs=stud[i].stip;

printf(“\n Студенты, получающие макс. стипендию %ld руб.”, maxs);

for (i=0; i<N; i++)

if (stud[i].stip==maxs) printf(“\n%s”, stud[i].fam);}

 

Date: 2015-10-19; view: 353; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию