Q:

Switch / Case issue

For C language, I know I'm close, but for for any character inputted, the printout is "Consonant". What is wrong with my switch case statement. Will I need if statements? 
#include <stdio.h>
#include <stdlib.h>

int main()
{
    char name;
    printf("Enter a character: ");
    scanf_s("%c", &name);

    switch (name)
    {
    case 'a':
        printf("Vowel");
        break;
    case 'e':
        printf("Vowel");
        break;
    case 'i':
        printf("Vowel");
        break;
    case 'o':
        printf("Vowel");
        break;
    case'u':
        printf("Vowel");
        break;
    case 'y':
        printf("Sometimes");
        break;
    default:
        printf("Consonant");
    }
    return 0;
}

A:

Note that the Microsoft page for scanf_s() says:

In the case of characters, a single character may be read as follows:
char c;

scanf_s("%c", &c, 1);

Your scanf_s() call is failing, but you are not checking the result, so you don't know that.
ALWAYS check the result of input functions!
And make sure you've read the manual page for functions you're using.
It's probably also a good idea to use " %c" as the format string to skip white space.  However, that's a refinement for later.

You don't have a break; after the code in the default: case label.  That's not a good idea.
You can use:
if (scanf_s("%c", &name, 1) == 1)
{
    switch (name)
    {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
        printf("Vowel\n");
        break;
    case 'y':
        printf("Sometimes\n");
        break;
    default:
        printf("Consonant\n");
        break;
    }
}
else
    fprintf(stderr, "Failed to read a character\n");

Note that all upper-case letters, punctuation, white space and control characters are deemed to be consonants.  That's not entirely accurate.

