Как я могу изменить программу проверки даты, чтобы она принимала ввод с клавиатуры как «одну строку»? - PullRequest
0 голосов
/ 30 апреля 2019

Программа работает хорошо и корректно, но не соответствует требованиям, чтобы воспринимать ввод с клавиатуры как переменную ONE STRING, которую нужно проанализировать, а отдельные значения преобразовать в целые числа.Я думал, что это то, что я сделал, но, похоже, я не прав, и мне просто не хватает идей.

#include <stdio.h>
#include <stdbool.h>

int main()
{
    int mm, dd,yyyy;

    printf("Welcome to my Date Checker\n");
    printf("Please enter date to test as format (MM/DD/YYYY): ");
    scanf("%d/%d/%d", &mm, &dd, &yyyy);

    // Validates year
    if(yyyy>=1000 && yyyy<=9999)
    {
        // Validates month
        if(mm>=1 && mm<=12)
        {
            // validate days
            if((dd>=1 && dd<=31) &&
            (mm==1 || mm==3 || mm==5 || mm==7 || mm==8 || mm==10 || mm==12))
                // Validates if jan, march, may, jul, aug, oct and dec
                // have a max of 31 days
                printf("Date is valid.\n");

            else if((dd>=1 && dd<=30) && (mm==4 || mm==6 || mm==9 || mm==11))
                // Validates if apr, jun, sept, and nov have max of 30 days
                printf("Date is valid.\n");

            else if((dd>=1 && dd<=28) && (mm==2))
                // Validates if feb has max of 28 days
                printf("Date is valid.\n");

            else if(dd==29 && mm==2 && (yyyy%400==0 ||(yyyy%4==0 && yyyy%100!=0)))
                // Validates leap years
                printf("Date is valid.\n");
            else
                printf("Date is invalid.\n");
        }
        else { printf("Month is not valid.\n"); }
    }
    else { printf("Year is not valid.\n"); }

    printf("\nPress any key to continue . . . ");
    getchar();

}

Ожидаемые результаты верны, но не процесс.

Welcome to my Date Checker
Please enter date to test as format (MM/DD/YYYY): 03/25/1999
Date is valid.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...