C语言字符数组题,自己做不出

输入格式:
两行,第一行给出一个整数N(1<=N<=100),随后N行,每行给出一个长度为5的字符串(仅包含Y和N,分别代表5个题目小明是否通过),Y代表本题通过,N代表本题未通过。

输出格式:
可以拿到奶茶输出“YES”,否则输出“NO”(输出不含双引号)。

输入样例:
3
NNNYN
NNYYY
YYYNN
结尾无空行
输出样例:
NO
YES
YES
结尾无空行


#include<stdio.h>
#include<stdlib.h>

int main()
{
    int n, i, j, k, m, *p;
    char sn[5];

    printf("请输入个数:\n");
    scanf("%d",&n);

    if (n<=0)
    {
        return -1;
    }
    
    j = 0;
    m = n;
    p = (int *)malloc(sizeof(int) * n);

    while (n--)
    {
        scanf("%s", sn);
        k = 0;
        for(i = 0; i < 5; i++)
        {
            if (sn[i] == 'Y')
            {
                k ++;
                if (k >= 3)
                {
                    p[j++] = 1;
                    break;
                }
                
            }
            
        }
        
    }

    for ( i = 0; i < m; i++)
    {
        if (p[i] == 1)
        {
            printf("YES\n");
        }
        else{
            printf("NO\n");
        }
        
    }

    return 0;
}

运行结果为:

img