JiaWei Lee Ответов: 1

Расписание обновлений в C


функция будет добавлена по расписанию

если дублировать описание с тем же временем оно вернет false

bool add_new_appointment(
                         struct Appointment schedule[],
                         int numOfAptInSchedule,
                         char description[],
                         int year, int month, int day,
                         int startHour, int startMinute,
                         int endHour, int endMinute )
{
    
    return false;
}


Что я уже пробовал:

struct Appointment {
    char description[50];
    int year;
    int month;
    int day;
    int startHour;
    int startMinute;
    int endHour;
    int endMinute;
};




<pre>void print_schedule( struct Appointment schedule[], int numOfAptInSchedule )
{
    printf("\nAppointment: %d\n%d-%d-%d\n%s\n%.2d:%.2d to %.2d:%.2d\n\n",
           numOfAptInSchedule,
           schedule->year,schedule->month, schedule->day,
           schedule->description,
           schedule->startHour,schedule->startMinute,
           schedule->endHour,schedule->endMinute);
}

int main(){

    struct Appointment mySchedule[20];
    int numAptInSchedule = 0;
    
    
     if ( add_new_appointment( mySchedule, numAptInSchedule,
     "Train with Luke",
     2018, 1, 28, 9, 0, 11, 30)){
     numAptInSchedule++;
     printf("Appointment added!\n");
     print_schedule( mySchedule, numAptInSchedule);
     }
}

OriginalGriff

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы. Но посмотрите мой ответ на ваш предыдущий вопрос.

Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

1 Ответов

Рейтинг:
2

CPallini

Это должно быть тривиально, если предположить, что существует взаимно однозначное соответствие между передаваемыми параметрами и struct Appointment участники (Вы не предоставили информацию о себе)

  bool add_new_appointment(
                         struct Appointment schedule[],
                         int numOfAptInSchedule,
                         char description[],
                         int year, int month, int day,
                         int startHour, int startMinute,
                         int endHour, int endMinute )
{
  struct Appointment *pa = &schedule[numOfAptInSchedule]; // just an alias

  // assuming struct Appointment.description is a character array 
  size_t size = sizeof(pa->description);
  strncpy( pa->description, description, size - 1); 
  pa->description[size-1] = '\0';
  pa->year = year;
  pa->month = month;
  //..
  return true;
}

Обратите внимание: проверка ошибок оставлена как упражнение.


JiaWei Lee

для каждого раунда параметры будут сбрасываться и переходить в новые,
как определить, существуют ли повторяющиеся параметры?

CPallini

Если вам не нужны дубликаты элементов массива (я вас понял?), то add_new_appointement вызов вы должны сканировать существующие элементы, чтобы проверить наличие дубликатов.

JiaWei Lee

Итак, мне нужно два цикла for, чтобы пройти через все элементы в расписании[]?

JiaWei Lee

если выводить вывод Таким образом, то почему он всегда привязан к первому входу?

пустота print_schedule( структура, расписание, [], int и numOfAptInSchedule )
{
функции printf("\nAppointment: %д\п%д%д%д\п%з\п%.В 2D:%.2D в %.В 2D:%.2Д\н\н",
numOfAptInSchedule,
расписание->год,расписание->месяц, расписание->День,
расписание->описание,
график-&ГТ;startHour,расписание матчей-&ГТ;параметр startminute,
график-&ГТ;endHour,расписание матчей-&ГТ;endMinute);
}