Подсчет дней в структуре - C (СИ)

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

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

Объявление структуры и функции подсчета дней:
int days_sum(const struct month months[], int number);
 
struct month 
{
    char months[NAME] ;
    char short_months[3] ;
    int days;
    short mon_number;
};
struct month months[NUMBER_OF_MONTHS] = 
    {
        {"January", "jan", 31, 1},
        {"February", "feb", 28, 2},
        {"March", "mar", 31, 3},
        {"April", "apr", 30, 4},
        {"May", "may", 31, 5},
        {"June", "jun", 30, 6},
        {"July", "jul", 31, 7},
        {"August", "aug", 31, 8},
        {"September", "sep", 30, 9},
        {"October", "oct", 31, 10},
        {"November", "nov", 30, 11},
        {"December", "dec", 31, 12},
    };
Функция:
int days_sum(const struct month months[], int number)
{
    int i, total;
    for(i = 0, total = 0; i < number; ++i)
    {
        total+=months[i].days;
    }
return total;
}
Ошибки, на которые указывает компилятор:
firststruct.c:8:27: warning: declaration of 'struct month' will not be visible outside of this function [-Wvisibility] int days_sum(const struct month months[], int number); ^ firststruct.c:8:39: error: array has incomplete element type 'const struct month' int days_sum(const struct month months[], int number); ^ firststruct.c:8:27: note: forward declaration of 'struct month' int days_sum(const struct month months[], int number);
^

Решение задачи: «Подсчет дней в структуре»

textual
Листинг программы
struct month months[NUMBER_OF_MONTHS] = 
    {
        {"January", "jan" ( тут ) , 31, 1},
        {"February", "feb" ( и тут тоже ) , 28, 2},
        {"March", "mar" ( тут и так далее ) , 31, 3},
        {"April", "apr", 30, 4},
        {"May", "may", 31, 5},
        {"June", "jun", 30, 6},
        {"July", "jul", 31, 7},
        {"August", "aug", 31, 8},
        {"September", "sep", 30, 9},
        {"October", "oct", 31, 10},
        {"November", "nov", 30, 11},
        {"December", "dec", 31, 12},
    };

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

В представленном коде объявлена структура month с полями:

  • name - строковое представление названия месяца;
  • abbr - сокращение названия месяца;
  • days - количество дней в месяце;
  • id - уникальный идентификатор месяца. Затем объявлен массив months типа struct month с фиксированным размером NUMBER_OF_MONTHS. В массиве months происходит заполнение значений полей структуры month для каждого месяца. Значениями являются:
  • name - название месяца;
  • abbr - сокращение названия месяца;
  • days - количество дней в месяце;
  • id - уникальный идентификатор месяца. Значениями поля days являются числа от 30 до 31, за исключением февраля, в котором количество дней может быть 28 или 29 в високосный год. Значениями поля id являются числа от 1 до 12, соответствующие номеру месяца в году.

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


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

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

14   голосов , оценка 3.786 из 5