当前位置: 代码迷 >> C语言 >> [求助]编译通过,但输入第二个字母无显示!
  详细解决方案

[求助]编译通过,但输入第二个字母无显示!

热度:328   发布时间:2006-08-11 10:06:10.0
[求助]编译通过,但输入第二个字母无显示!
请高手诊断为什么会出错!
#include <stdio.h>
void main()
{
char letter;
printf("please input the first letter of someday\n");
while ((letter=getchar())!='Y')/*当所按字母为Y时才结束*/
{
switch (letter)
{
case 'S':printf("please input second letter\n");
if((letter=getchar())=='a')
printf("saturday\n");
else if ((letter=getchar())=='u')
printf("sunday\n");
else printf("data error\n");break;
case 'F':printf("friday\n");break;
case 'M':printf("monday\n");break;
case 'T':printf("please input second letter\n");
if((letter=getchar())=='u')
printf("tuesday\n");
else if ((letter=getchar())=='h')
printf("thursday\n");
else printf("data error\n");
break;
case 'W':printf("wednesday\n");break;
default: printf("data error\n");
}
}
}

搜索更多相关的解决方案: 字母  编译  输入  

----------------解决方案--------------------------------------------------------
当输入S时,显示提示输入第二个字母,当输入a时没有显示saturday,输入T也有同样的情况。我是初学者,请高手帮助
----------------解决方案--------------------------------------------------------
too hard

----------------解决方案--------------------------------------------------------
以下是引用chenkuiyu在2006-8-11 10:06:10的发言:
请高手诊断为什么会出错!
#include <stdio.h>
void main()
{
char letter;
printf("please input the first letter of someday\n");
while ((letter=getchar())!='Y')/*当所按字母为Y时才结束*/
{
switch (letter)
{
case 'S':printf("please input second letter\n");
if((letter=getchar())=='a') //我感觉楼主不应该这样赋值啊!
printf("saturday\n");
else if ((letter=getchar())=='u')
printf("sunday\n");
else printf("data error\n");break;
case 'F':printf("friday\n");break;
case 'M':printf("monday\n");break;
case 'T':printf("please input second letter\n");
if((letter=getchar())=='u')
printf("tuesday\n");
else if ((letter=getchar())=='h')
printf("thursday\n");
else printf("data error\n");
break;
case 'W':printf("wednesday\n");break;
default: printf("data error\n");
}
}
}


----------------解决方案--------------------------------------------------------
怎样赋值啊!
----------------解决方案--------------------------------------------------------

楼主,你这程序是,输入一个星期几的大写字母,输出完整的英文单词


----------------解决方案--------------------------------------------------------
以下是引用chenkuiyu在2006-8-11 10:06:10的发言:
请高手诊断为什么会出错!
#include <stdio.h>
void main()
{
char letter;
printf("please input the first letter of someday\n");
while ((letter=getchar())!='Y')/*当所按字母为Y时才结束*/
{
switch (letter)
{
case 'S':printf("please input second letter\n");
if((letter=getchar())=='a')
printf("saturday\n");
else if ((letter=getchar())=='u')
printf("sunday\n");
else printf("data error\n");break;
case 'F':printf("friday\n");break;
case 'M':printf("monday\n");break;
case 'T':printf("please input second letter\n");
if((letter=getchar())=='u')
printf("tuesday\n");
else if ((letter=getchar())=='h')
printf("thursday\n");
else printf("data error\n");
break;
case 'W':printf("wednesday\n");break;
default: printf("data error\n");
}
}
}

楼主在case 'S'后面加个getchar();试试
----------------解决方案--------------------------------------------------------

#include <stdio.h>
void main()
{
char letter;
printf("please input the first letter of someday\n");
while ((letter=getchar())!='Y')/*当所按字母为Y时才结束*/
{
switch (letter)
{
case 'S':printf("please input second letter\n");
getchar();
if((letter=getchar())=='a')
printf("saturday\n");
else if ((letter=getchar())=='u')
printf("sunday\n");
else printf("data error\n");break;
case 'F':printf("friday\n");break;
case 'M':printf("monday\n");break;
case 'T':printf("please input second letter\n");
if((letter=getchar())=='u')
printf("tuesday\n");
else if ((letter=getchar())=='h')
printf("thursday\n");
else printf("data error\n");
break;
case 'W':printf("wednesday\n");break;
default: printf("data error\n");
}
}
}

第一个saturday通过,sunday没通过!

----------------解决方案--------------------------------------------------------

判断sunday的时候用 if(letter=='u')
而你用的是给letter重新赋值。
#include <stdio.h>
void main()
{
char letter;
printf("please input the first letter of someday\n");
while ((letter=getchar())!='Y')/*当所按字母为Y时才结束*/
{
switch (letter)
{
case 'S':printf("please input second letter\n");
getchar();
if((letter=getchar())=='a')
printf("saturday\n");
else if (letter=='u')
printf("sunday\n");
else printf("data error\n");break;
case 'F':printf("friday\n");break;
case 'M':printf("monday\n");break;
case 'T':printf("please input second letter\n");
if((letter=getchar())=='u')
printf("tuesday\n");
else if (letter=='h')
printf("thursday\n");
else printf("data error\n");
break;
case 'W':printf("wednesday\n");break;
default: printf("data error\n");
}
}
}


----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
char letter;
printf("please input the first letter of someday\n");
while ((letter=getchar())!='Y')/*当所按字母为Y时才结束*/
{
switch (letter)
{
case 'S':printf("please input second letter\n");
getchar();
if((letter=getchar())=='a')
printf("saturday\n");
else if (letter=='u')
printf("sunday\n");
else printf("data error\n");break;
case 'F':printf("friday\n");break;
case 'M':printf("monday\n");break;
case 'T':printf("please input second letter\n");
getchar();
if((letter=getchar())=='u')
printf("tuesday\n");
else if (letter=='h')
printf("thursday\n");
else printf("data error\n");break;
case 'W':printf("wednesday\n");break;
default: printf("data error\n");
}
}
}

谢谢横眉冷对,这个程序是完全通过的程序,愿与大家分享。

----------------解决方案--------------------------------------------------------
  相关解决方案