
C语言问题,还有讲解一下getchar()用法
老师布置的问题,苦苦追求首先提示用户“Hi,Iloveyou”,然后询问“Doyouloveme(Y/N)?”。如果用户输入'y'或者'Y',打印“Sogreat!Kis...
老师布置的问题,苦苦追求
首先提示用户“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");
}
else
{
getwchar();
printf("Sorry, I don't understand.\n");
printf("Do you love me(Y\\N)\?");
}
scanf("%c", &answer);
}while(answer!='Y'&& answer!='y');
end:
getch();
return(0);
}
我不会用,getchar()用了scanf 但还是有问题,就是输入字符的问题。SOS 展开
首先提示用户“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");
}
else
{
getwchar();
printf("Sorry, I don't understand.\n");
printf("Do you love me(Y\\N)\?");
}
scanf("%c", &answer);
}while(answer!='Y'&& answer!='y');
end:
getch();
return(0);
}
我不会用,getchar()用了scanf 但还是有问题,就是输入字符的问题。SOS 展开
展开全部
#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.同时对你的代码进行了些优化,多数为代码的复用(有些语句在代码中出现一次就可以了,希望你把我的代码和你的代码进行比较,你会有所收获的).
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.同时对你的代码进行了些优化,多数为代码的复用(有些语句在代码中出现一次就可以了,希望你把我的代码和你的代码进行比较,你会有所收获的).
2009-04-03
展开全部
这么改,已经编译运行确认:
#include <stdio.h>
main()
{
char answer;
printf("Hi, I love U.\n");
printf("Do you love me(Y\\N)\?\n");
//scanf("%c", &answer);
answer=getchar();
if(answer == 'Y' || answer == 'y')
{
printf("So great! Kiss!\n");
goto end;
}
do
{
if(answer == 'Y' || answer == 'y')
{
printf("So great! Kiss!\n");
goto end;
}
else if(answer == 'N'|| answer == 'n')
{
printf("Do you love me(Y\\N)\?\n");
}
else
{
// getwchar();
printf("Sorry, I don't understand.\n");
printf("Do you love me(Y\\N)\?");
}
//scanf("%c", &answer);
fflush(stdin);
answer=getchar();
}while(answer!='Y'&& answer!='y');
end:
getch();
return(0);
}
#include <stdio.h>
main()
{
char answer;
printf("Hi, I love U.\n");
printf("Do you love me(Y\\N)\?\n");
//scanf("%c", &answer);
answer=getchar();
if(answer == 'Y' || answer == 'y')
{
printf("So great! Kiss!\n");
goto end;
}
do
{
if(answer == 'Y' || answer == 'y')
{
printf("So great! Kiss!\n");
goto end;
}
else if(answer == 'N'|| answer == 'n')
{
printf("Do you love me(Y\\N)\?\n");
}
else
{
// getwchar();
printf("Sorry, I don't understand.\n");
printf("Do you love me(Y\\N)\?");
}
//scanf("%c", &answer);
fflush(stdin);
answer=getchar();
}while(answer!='Y'&& answer!='y');
end:
getch();
return(0);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以嵌套使用,需要注意回车也会被识别为getchar的内容!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询