Реализовать добавление ещё одной позиции сотрудника - C (СИ)
Формулировка задачи:
Вобщем есть структура
В глайной функции main создан массив структуры из 20 элементов
функция для добавление: нужно реализовать добавление ещё одной позиции сотрудника, тк массив по условию дан статичный я решил особо не утруждаться и всё завязать на переменной n.
Вначале я ввожу переменную n и выполняю цикл записи n раз. Для того чтобы добавить ещё одного я просто увеличиваю n на 1 и повторяю операцию записи для ячейки n+1
вызывается функция так в функции у меня следующее
Только вот с указателями у меня плоховато и я некак не пойму что делать и почему так получается.
После вывода там оказываются записаны всякие кракозябры. Почему так получается мне не понятно, даже когда в функции только n++ и вывод n То кракозябры всё равно добавляются
Помогите пожалуйста. Заранее Спасибо
struct hotel
{
int code_staff; //шифр сотрудника
char fio[100]; //ФИО
char position[30]; //должность
float tarif_rate; //тарифная ставка
float allowance; //надбавка в %
float salary; //оклад
};struct hotel h[20];
void add_to_data (hotel *h, int &n);
add_to_data (h, n);
void add_to_data (hotel *h, int &n) //дополнение данных
{
n++;
printf ("Введите шифр сотрудника\n");
scanf ("%i",&h[n].code_staff);
printf ("Введите ФИО\n");
scanf ("%s",&h[n].fio,100);
printf ("Введите должность\n");
scanf ("%s",&h[n].position,30);
printf ("Введите тарифную ставку\n");
scanf ("%f",&h[n].tarif_rate);
printf ("Введите надбавку(%)\n");
scanf ("%f",&h[n].allowance);
h[n].salary=(240*h[n].tarif_rate)+(((240*h[n].tarif_rate)/100)*h[n].allowance);
printf ("\n");
}Решение задачи: «Реализовать добавление ещё одной позиции сотрудника»
textual
Листинг программы
#define HOTEL_MAX_LIST_SIZE 20
struct hotel_list {
struct hotel items[HOTEL_MAX_LIST_SIZE];
int list_size;
};
Объяснение кода листинга программы
- В коде определен макрос HOTEL_MAX_LIST_SIZE, который задает максимальное количество элементов в списке сотрудников (20).
- Создана структура hotel_list, которая содержит массив структур hotel (items) и переменную list_size.
- В структуре hotel определены поля: name (название сотрудника) и age (возраст сотрудника).
- Код не содержит функций для добавления нового сотрудника в список.
- Код не содержит функций для вывода информации о сотрудниках.
- Код не содержит функций для удаления сотрудников из списка.
- Код не содержит функций для сортировки списка сотрудников.
- Код не содержит функций для поиска сотрудников в списке.
- Код не содержит циклов или других операций, которые могли бы использоваться для работы со списком сотрудников.