Подсчет дней в структуре - 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, соответствующие номеру месяца в году.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д