| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 927 人关注过本帖
标题:switch 输出报错!
只看楼主 加入收藏
xs_200
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2007-8-6
收藏
 问题点数:0 回复次数:11 
switch 输出报错!
#include <stdio.h>
main()
{
char letter;
printf("please in put the first letter\n");
while (letter=getchar()!='Y')
{
switch (letter)
{
case 'M':printf("Today is Monday\n");break;
case 'T':printf("please input the second letter\n");
if (getchar()=='u')
printf("Today is Tuesday\n");
else if (getchar()=='h')
printf("Today is Thursday\n");
else
printf("data error1\n");
break;
case 'W':printf("Today is Wednesday");break;
case 'F':printf("Today is Friday");break;
case 'S':printf("please input the second letter\n");
if (getchar()=='a')
printf("Today is Satday\n");
else if (getchar()=='h')
printf("Today is Sunday\n");
else
printf("data error2\n");
break;
default:printf("data error3\n");
}
}
}
这各程序执行的时候总是输出 data error3,请帮忙查找原因,谢谢!
搜索更多相关主题的帖子: switch 输出 
2007-11-16 16:06
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
收藏
得分:0 

LZ注意区分输入字母的大小写,你输的是小写字母吧


女朋友问我想怎么死~~~
             我说我想"爽死"
2007-11-16 16:30
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
收藏
得分:0 
以下是引用xs_200在2007-11-16 16:06:55的发言:
#include <stdio.h>
void main()
{
char letter;
printf("please in put the first letter\n");
while (letter=getchar()!='Y') //while ((letter=getchar())!='/ n')
{
switch (letter)
{
case 'M': printf("Today is Monday\n");break;
case 'T': printf("please input the second letter\n");
if (getchar()=='u') //if ((getchar())=='u')
printf("Today is Tuesday\n");
else if (getchar()=='h') //else if ((getchar())=='h')
printf("Today is Thursday\n");
else
printf("data error1\n");
break;
case 'W': printf("Today is Wednesday");break;
case 'F': printf("Today is Friday");break;
case 'S': printf("please input the second letter\n");
if (getchar()=='a') // if ((getchar())=='a')
printf("Today is Satday\n");
else if (getchar()=='h') // else if ((getchar())=='h')
printf("Today is Sunday\n");
else
printf("data error2\n");
break;
default: printf("data error3\n");
}
}
}
这各程序执行的时候总是输出 data error3,请帮忙查找原因,谢谢!

[此贴子已经被作者于2007-11-16 16:43:28编辑过]


女朋友问我想怎么死~~~
             我说我想"爽死"
2007-11-16 16:36
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
收藏
得分:0 

再次提示编码风格问题,开始我没发现问题,是我习惯拿到一个程序后改成自己喜欢的风格来看
事实上已经帮你改好了,差点没看出来,以为你输错大小写了


女朋友问我想怎么死~~~
             我说我想"爽死"
2007-11-16 16:37
hczsea
Rank: 2
等 级:论坛游民
帖 子:129
专家分:68
注 册:2007-10-23
收藏
得分:0 
请教:调试时,发现敲入一个字符后,出现两次data error3。说明回车符也被当作字符处理了,有没解决方法
2007-11-16 17:16
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用hczsea在2007-11-16 17:16:06的发言:
请教:调试时,发现敲入一个字符后,出现两次data error3。说明回车符也被当作字符处理了,有没解决方法

有。


—>〉Sun〈<—
2007-11-16 18:02
chmlqw
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-10-11
收藏
得分:0 
while (letter=getchar()!='Y') 应该这个才是错因。由于!=运算等级高于 =
所以,先判断了 getchar() != 'Y' ,如果输入的不是‘Y’,那么返回真,也就是1给letter 。所以一直有错。
2007-11-16 18:02
chmlqw
Rank: 1
等 级:新手上路
帖 子:180
专家分:0
注 册:2007-10-11
收藏
得分:0 
以下是引用cosdos在2007-11-16 18:02:15的发言:

有。

回答得很精辟啊

2007-11-16 18:04
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
回复:(chmlqw)以下是引用cosdos在2007-11-16 18:02...
// 没仔细看楼主的代码所以只能说有。

#include <stdio.h>
int main(void)
{
int letter; /* 建议使用 int 因为 getchar() 返回 int 类型 */
int ch;

printf("please in put the first letter\n");
while((letter = getchar()) !='Y')
{
if(letter != '\n')
while(getchar() != '\n');

switch(letter)
{
case 'M':
printf("Today is Monday\n");
break;
case 'T':
printf("please input the second letter\n");
if((ch = getchar()) == 'u')
{
if(ch != '\n')
while(getchar() != '\n');
printf("Today is Tuesday\n");
}
else if((ch = getchar()) == 'h')
{
if(ch != '\n')
while(getchar() != '\n');

printf("Today is Thursday\n");
}
else
printf("data error1\n");
break;
case 'W':
printf("Today is Wednesday");
break;
case 'F':
printf("Today is Friday");
break;
case 'S':
printf("please input the second letter\n");
if((ch = getchar()) == 'a')
{
if(ch != '\n')
while(getchar() != '\n');

printf("Today is Satday\n");
}
else if((ch = getchar()) == 'h')
{
if(ch != '\n')
while(getchar() != '\n');

printf("Today is Sunday\n");
}
else
printf("data error2\n");
break;
default:
printf("data error3\n");
}
}

return 0;
}


/* 这个程序是干什么的? */

[此贴子已经被作者于2007-11-16 18:20:06编辑过]


—>〉Sun〈<—
2007-11-16 18:16
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 

这程序风格真差啊……………………


专心编程………
飞燕算法初级群:3996098
我的Blog
2007-11-17 02:41
快速回复:switch 输出报错!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051610 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved