Программирование >>  Элементы языков с и с++ 

1 ... 44 45 46 [ 47 ] 48 49 50 ... 200


C:\WINDOWS\systero32Vcmd.e3ee


Рис. 7.9. Расчет зарплаты одному работнику

; Листинг 7.9

29.СРР : Defines the entry point for the console application.

#include stdafx.h

ttinclude <stdio.h>

ttinclude <conio.h>

ttinclude <stdlib.h> for atoiO

ttdefine eof -1 ttdefine maxline 1000

-Ввод строки с клавиатуры

int getline(char s[],int lim) {

int c,i;

for(i=0; i<lim-l && (c=getchar()) != eof && с != Xn; i++) s[i]=c; s[i]=\0;

i++; для учета количества

return(i);

---------

struct zrp

структура данных по зарплате



int tinain() I

char c, s [maxline] ; struct zrp *pl;

/определение размера массива:*/

int RazmMas = sizeof(emp)/sizeof(zrp); do (

/*ввод номера работника:*/ ш: printf( enter emps number > ); getiine(s, maxline); int i=atoi(s);

if(i < RazmMas) контроль количества заданных элементов массива pl=&emp[i]; else goto m;

char *name; уоля работника

float stavka; оплата за один рабочшй день

float nalog; величина налога

lemp[] = ( Ivanov ,200,0.1,

Petrov ,300,0.2,

Sldorov , 400,0.3 };

/*3десь задан массив экземпляров структур: одна структура содержит данные на одного работника. Массив сразу проинициализирован.*/

/Функция начисления зарплаты одному работнику. RabDn - количество отработанных дней*/

float zarplata (struct zrp *z,int RabDn) (

return (z->stavka * RabDn * (1 - z->nalog));



/*ввод количества отработанных дней:*/ printf( enter works days amount > ); getline(s, maxline); i=atoi(s) ;

float zp = zarplata(pi,i); обращение к функции расчета зарплаты printf( %s %6.2f\n ,pl->name,zp);

while((c=getchar()) != eof)

; конец оператора do-while } tmain()

Рекурсия в структурах

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

□ Слово (строка символов) ;

□ Счетчик количества каждого искомого слова в тексте ;

□ Указатель на предыдущую структуру, в которой встречается данное слово ;

□ Указатель на последующую структуру, в которой встречается данная строка .

Такая структура может быть представлена в виде рекурсивного шаблона с указателем на такую же структуру:

struct tnod (***)

char *word; int count; struct tnod *left; struct tnod *right; }t,*p;

Если, например, p=&t, то доступ к элементам структуры будет таким: p->word, p->left, p->right

Приведем пример программы, подсчитывающей количество встречающихся в некотором тексте слов. Эта программа передает введенные с клавиатуры слова специальной функции, которая по ним строит в памяти так называемое двоичное дерево . t



1 ... 44 45 46 [ 47 ] 48 49 50 ... 200

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика