| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 932 人关注过本帖
标题:请帮看下为什么老是显示错误
只看楼主 加入收藏
hxgcczz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-1-11
收藏
 问题点数:0 回复次数:6 
请帮看下为什么老是显示错误
题目:请输入星期几的第一个字母来判断一下是星期几
#include "stdio.h"
void main()
{
 char a;
 printf("输出第一个字母:\n");
 while ((a=getch())!='y')
 {switch (a)
  {case 's':printf("输出第二个字母:\n");
              if ((a=getch())=='u') printf("sunday:星期日\n");
              else
              if ((a=getch())=='a') printf("saturday:星期六\n");
              else printf("错误\n");
              break;
   case 'm':printf("monday:星期一\n");break;
   case 't':printf("输出第二个字母:\n");
            if ((a=getch())=='u') printf("tuesday:星期二\n");
            else
            if ((a=getch())=='h') printf("thursday:星期四\n");
            else printf("错误\n");
            break;
   case 'w':printf("wednesday:星期三\n");break;
   case 'f':printf("friday:星期五\n");break;
   default:printf("错误\n");
 }}                      
}
其他的都没什么问题,就是在输入's'以后,再输入‘u’它马上显示sunday
但如果再输入‘a’,它不显示,要再按下‘a’才显示出saturday
‘t’也是一样的问题
我不清楚我错哪了。请各位大哥大姐帮助下。
搜索更多相关主题的帖子: include monday 星期六 字母 
2008-01-14 22:11
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
s-u以后,switch跳出了,,,,所以输'a'不是在's'的前提下;

樱花大战,  有爱.
2008-01-14 22:29
hxgcczz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-1-11
收藏
得分:0 
情况不是这样的。
我输入‘s’以后,再输入‘u’,它显示正常。
但如果我输入‘s’以后,再输入‘a’,它不显示,要再输入一下‘a’才显示出‘saturday’,就是说输入完's'以后,要输入两次‘a’才能正常运行。
2008-01-14 23:15
nobush
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-1-10
收藏
得分:0 
因為第一次輸入‘a’ 被這一句讀取了 if ((a=getch())=='u')
當運行到if ((a=getch())=='a') 時候就是另一次讀鍵盤輸入了
2008-01-15 00:28
hxgcczz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-1-11
收藏
得分:0 
那请教一下如何改才能让程序正常运行?
2008-01-15 01:34
yu_hua
Rank: 2
等 级:论坛游民
帖 子:222
专家分:95
注 册:2006-8-10
收藏
得分:0 
帮你改了一下
#include "stdio.h"
void main()
{
char a;
printf("输出第一个字母:\n");
while ((a=getch())!='y')
{ switch (a)
  {case 's':printf("输出第二个字母:\n");a=getch();
              if (a=='u') printf("sunday:星期日\n");
              else
              if (a=='a') printf("saturday:星期六\n");
              else printf("错误\n");
              break;
   case 'm':printf("monday:星期一\n");break;
   case 't':printf("输出第二个字母:\n");a=getch();
            if (a=='u') printf("tuesday:星期二\n");
            else
            if (a=='h') printf("thursday:星期四\n");
            else printf("错误\n");
            break;
   case 'w':printf("wednesday:星期三\n");break;
   case 'f':printf("friday:星期五\n");break;
   default :printf("错误\n");
}}                       
}
2008-01-15 06:03
hxgcczz
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-1-11
收藏
得分:0 
OK!我彻底明白了,谢谢各位大哥的指点
2008-01-15 12:45
快速回复:请帮看下为什么老是显示错误
数据加载中...
 
   



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

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