Реализовать добавление ещё одной позиции сотрудника - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вобщем есть структура
struct hotel
{
    int code_staff;     //шифр сотрудника
    char fio[100];      //ФИО
    char position[30];  //должность
    float tarif_rate;              //тарифная ставка
    float allowance;            //надбавка в %
    float salary;       //оклад
};
В глайной функции main создан массив структуры из 20 элементов
struct hotel h[20];
функция для добавление:
void add_to_data (hotel *h, int &n);
нужно реализовать добавление ещё одной позиции сотрудника, тк массив по условию дан статичный я решил особо не утруждаться и всё завязать на переменной n. Вначале я ввожу переменную n и выполняю цикл записи n раз. Для того чтобы добавить ещё одного я просто увеличиваю n на 1 и повторяю операцию записи для ячейки n+1 вызывается функция так
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");
}
Только вот с указателями у меня плоховато и я некак не пойму что делать и почему так получается. После вывода там оказываются записаны всякие кракозябры. Почему так получается мне не понятно, даже когда в функции только n++ и вывод n То кракозябры всё равно добавляются Помогите пожалуйста. Заранее Спасибо

Решение задачи: «Реализовать добавление ещё одной позиции сотрудника»

textual
Листинг программы
#define HOTEL_MAX_LIST_SIZE 20
 
struct hotel_list {
    struct hotel items[HOTEL_MAX_LIST_SIZE];
    int list_size;
};

Объяснение кода листинга программы

  1. В коде определен макрос HOTEL_MAX_LIST_SIZE, который задает максимальное количество элементов в списке сотрудников (20).
  2. Создана структура hotel_list, которая содержит массив структур hotel (items) и переменную list_size.
  3. В структуре hotel определены поля: name (название сотрудника) и age (возраст сотрудника).
  4. Код не содержит функций для добавления нового сотрудника в список.
  5. Код не содержит функций для вывода информации о сотрудниках.
  6. Код не содержит функций для удаления сотрудников из списка.
  7. Код не содержит функций для сортировки списка сотрудников.
  8. Код не содержит функций для поиска сотрудников в списке.
  9. Код не содержит циклов или других операций, которые могли бы использоваться для работы со списком сотрудников.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы