C语言问题,还有讲解一下getchar()用法

来源:百度知道 编辑:UC知道 时间:2024/05/11 03:44:37
老师布置的问题,苦苦追求
首先提示用户“Hi, I love you”,然后询问“Do you love me(Y/N)?”。
如果用户输入'y'或者'Y',打印“So great! Kiss!”,然后退出。
如果用户输入'n'或者'N',则继续询问“Do you love me(Y/N)?”
如果用户输入其它,则提示“Sorry, I don't understand.”,然后继续询问“Do you love me(Y/N)?”[提示:用getchar()读入用户输入的字符,一次只能读入一个。如果用户一次输入多个字符,那么下次getchar()将读走这次输入的第二个字符,以此类推。]

#include <stdio.h>
main()
{
char answer;

printf("Hi, I love U.\n");
printf("Do you love me(Y\\N)\?\n");
scanf("%c", &answer);
getchar();

if(answer == 'Y' || answer == 'y')
{
printf("So great! Kiss!\n");
goto end;
}

do
{
if(answer == 'N'|| answer == 'n')
{
printf("Do you love me(Y\\N)\?\n");
}

#include <stdio.h>
void main()
{
char answer;
printf("Hi, I love U.\n");
do
{
printf("Do you love me(Y\\N)\?\n");
scanf("%c", &answer);
getchar();
if(answer == 'N'|| answer == 'n')
{
continue;
}
else if(answer == 'Y' || answer == 'y')
{
printf("So great! Kiss!\n");
break;
}
else
{
printf("Sorry, I don't understand.\n");
}
}while(true);
}
//每次给answer用scanf输入赋值时,都得用getchar()来读入回车字符
//注明:对特殊字符(回车,空格)的处理,在这里我没有写,你可以根据回车和空格的ASCII码进行条件判断!
//对你的程序有点改动,比如开头的void,在写代码的时候最好写上,有些编译器不支持默认int.同时对你的代码进行了些优化,多数为代码的复用(有些语句在代码中出现一次就可以了,希望你把我的代码和你的代码进行比较,你会有所收获的).

这么改,已经编译运行确认:
#include <stdio.h>
main()
{
char answer;

printf("Hi, I love U.