Мне было дано следующее задание для выполнения в C: -
Год делится на четыре сезона: весна, лето, осень и зима.Хотя точные даты смены сезонов меняются от года к году в зависимости от способа составления календаря, мы будем использовать следующие даты для этого упражнения:
Первый сезонденьЛето 20 мартаВесна 21 июняОсень 22 сентябряЗима 21 декабря
Создайте программу, которая читает месяц и день от пользователя.Пользователь введет название месяца в виде строки, а затем день в месяце в виде целого числа.
Затем ваша программа должна отобразить сезон, связанный с введенной датой..
Примечание: введите первые три буквы для примера месяца: январь для января, февраль для февраля и т. Д. .... и первая буква месяца должна быть заглавной.
Я написал мини-тестовый код для проверки первого условия, то есть 20 марта.
Вот мой код: -
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {
int date;
char month[3];
printf("Enter the month\n");
scanf("%s",month);
printf("Enter the date\n");
scanf("%d",&date);
int temp;
temp= strcmp(month,"Mar");
printf("output is %d\n",temp);
return 0;
}
Проблема, которую я получаю, заключается в том, что при вводе данных как Mar и 20 , я получаю вывод: - "output is 20" .Принимая во внимание, что я предполагаю получить вывод как 0 в моем тестовом коде.
Еще одно наблюдение состоит в том, что, если я изменяю дату на любое случайное число, я получаю это как вывод, тогда как я предполагаю получитьзначение, которое хранится в Temp, т. е. 0.
Я получаю правильный вывод, если полностью удаляю переменную date из кода.В это время я получаю 0.