C语言问题:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

可以使用getch()函数读取字符。
函数用途:从控制台读取一个字符,但不显示在屏幕上 .
例如:
char ch;
ch=getch();
用ch=getch();会等待用户按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。
不过路过的朋友看到最后回答我一个问题,百思不得其解,能不能帮我解决一下呢

#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
int main()
{
    char c;
    printf("please input a char:\n");
    //while(c=getch()!='Y')
    c=getch();
    while(c!='Y')
        //while(c=getch()!='Y')
    {
        printf("%c\n",c);
        switch(c)
        {
        case 'M':
            printf("Monday\n");
            break;
        case 'T':
            if(c=getch()=='u')
                printf("Tuesday\n");
            else if(c=getch()=='h')
                printf("thursday\n");
            else
                printf("error\n");
            break;
        case 'W':
            printf("Wednesday\n");
            break;
        case 'F':
            printf("Friday\n");
            break;
        case 'S':
            if(c=getch()=='a')
                printf("Saturday\n");
            else if(c=getch()=='u')
                printf("Sunday\n");
            else
                printf("error\n");
            break;
        }
        break;
    }
    return 0;
}

问题:

c=getch();
    while(c!='Y')

这两行若改成:

while(c=getch()!='Y')

为何会不对,从键盘获取的时候乱码,如下图所示:

C语言问题:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

每次只要写成一行就会出现这个类似汉字口的情况,写成两行则不会,可我觉得这个是一样的呀,哪位朋友帮一下我,万分感谢。