马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main()
{
char _isRain,_isFree;
printf("有空吗?我们一起去看电影吧!");
scanf("%c",&_isRain);
getchar();
printf("今天有没有下雨?");
scanf("%c",&_isRain);
if('Y' == _isFree)
{
printf("好呀!");
if('Y' == _isRain)
{
printf("记得带雨伞哦!");
}
else
{
}
}
else if('N' == _isFree)
{
printf("女神没空^_^");
}
else
{
}
return 0;
}
帮我看看,这段代码错在哪?
#include<stdio.h>
#include <conio.h>//getchar()包含在这个头文件中
/*
* 看了你的代码,大概清楚你的意思,代码有逻辑上的错误,这里帮你修改了一下,应该是你想让代码表达的意思
*/
//#define _CRT_SECURE_NO_WARNINGS //因为我使用的是VS2019, 不支持scanf,所以需要加这个宏定义,或者后面直接使用scanf_s,如果朋友你使用的是VC++6.0,codeblocks,Dec……可以不必操作这一步
int main()
{
char _isRain, _isFree;
printf("有空吗?我们一起去看电影吧!\n");
scanf_s("%c", &_isFree,sizeof(_isFree)); //在使用%c和%s读入字符或字符串时,应在地址参数后附加一个缓冲区边界值
//geichar()
//getchar()函数实际上是int getchar(void),所以它返回的是ASCII码,所以只要是ASCII码表里有的字符它都能读取出来。
// 在调用getchar()函数时,编译器会依次读取用户键入缓存区的一个字符(注意这里只读取一个字符,如果缓存区有多个字符,
// 那么将会读取上一次被读取字符的下一个字符),如果缓存区没有用户键入的字符,那么编译器会等待用户键入并回车后再执行下一步
// (注意键入后的回车键也算一个字符,输出时直接换行)
if ('Y' == _isFree)//'Y' == _isRain
{
printf("好呀!\n");
printf("今天有没有下雨?\n");
getchar(); //这里必须加一个getchar()用来吃掉上一个'\n'(scanf_s输入'Y'或者其他,然后按下回车键,回车键也是一个字符,会被下一个scanf_s读取)
scanf_s("%c", &_isRain,sizeof(_isRain));
if ('Y' == _isRain) {
printf("记得带雨伞哦!\n");
}
else {
printf("Well !\n");
}
}
else if ('N' == _isFree) //'N'== _isFree
{
printf("女神没空^_^\n");
}
else
{
printf("为什么不靴话!\n");
}
return 0;
}
|