为什么这个代码打不出最后的带伞啊?getchar()应该怎么用啊?#c语言

#include <stdio.h>
int main()
{
    char isfree, israin,issan;
    char y;
    printf("free?y or n.\n");
    scanf("%c", &isfree);
    getchar();
    if (isfree == 'y')
    {
        printf("rain?y or n.\n");
        scanf("%c", &israin);
        if (israin == 'y')
        {
            printf("san? y or n.\n");
            scanf("%c",&issan);
            getchar();
            if(issan=='y')
            {
                printf("dai!\n");
            }
            else{
            printf("an!\n");
        }
        }
        else {
            printf("go\n");
        }
    }
    else {
        printf("sorry!\n");
    }
    return 0;
}

if (israin == 'y')之前加上getchar();

#include <stdio.h>
int main()
{
    char isfree, israin,issan;
    char y;
    printf("free?y or n.\n");
    scanf("%c", &isfree);
    getchar();
    if (isfree == 'y')
    {
        printf("rain?y or n.\n");
        scanf("%c", &israin);
        getchar();
        if (israin == 'y')
        {
            printf("san? y or n.\n");
            scanf("%c",&issan);
            getchar();
            if(issan=='y')
            {
                printf("dai!\n");
            }
            else{
            printf("an!\n");
        }
        }
        else {
            printf("go\n");
        }
    }
    else {
        printf("sorry!\n");
    }
    return 0;
}

第13排少了一个getchar();