Отображение названия праздника в зависимости от месяца и дня, введенных в программе c - PullRequest
0 голосов
/ 06 июня 2018

У меня есть класс программирования, и в настоящее время у меня есть домашнее задание, чтобы показать название праздника на основе месяца и дня, введенных пользователем в программе C.

Всякий раз, когда я компилирую и запускаю программу, ошибки нет,Однако, если я введу какой-либо месяц и нажму «Ввод», он просто возвращает день Нового года и не запрашивает дату.Предполагается, что для отображения соответствующего праздника требуются и месяц, и дата, но кажется, что он не работает.

Мне было интересно, не могли бы вы предоставить информацию о том, какой синтаксис будет правильным.

Ниже приведен код, который я пытался создать:

#include <stdio.h>

int main () {

    char m;
    int d;

    printf("Enter Month: ");
    scanf("%c", &m);
    printf("Enter Date: ");
    scanf("%d",&d);

    if (m ="January" && d == 1)
        printf("New year's day ");
    else if (m ="July" && d ==1 )
        printf("Canada day ");
    else if (m = "December" && d ==25)
        printf("Christmas day ");
    else
        printf("%c %d does not correspond to a fixed-date holiday ", m, d);

    return 0;
}

1 Ответ

0 голосов
/ 06 июня 2018

Вещи, которые вы должны изменить в своей программе

1 - Не используйте тип char для хранения string, вы можете использовать массив символов.
2 - = isэто не оператор сравнения, это оператор присваивания, поэтому вы должны использовать функцию strcmp(), которая используется для сравнения двух строк и возврата количества разных символов (и 0, если обе строки одинаковы).

#include <stdio.h>
#include<string.h>

int main()
{
    char m[10];
    int d;
    printf("Enter Month: ");
    scanf("%s", m);
    printf("Enter Date: ");
    scanf("%d", &d);

    if ( !(strcmp(m, "January")) && d == 1)
        printf("New year's day ");
    else if (!(strcmp(m, "July")) && d == 1)
        printf("Canada day ");
    else if (!(strcmp(m, "December")) && d == 25)
        printf("Christmas day ");
    else
        printf("%s %d does not correspond to a fixed-date holiday ", m, d);

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...