[求助]急!急!急!SWITCH 问题
这个程序,应该是每输入一个字符,它就应该输出相应的英文字母,但实际上连续输入几个数字后回车,也能得到一个结果,这是怎么回事?#define N 20
#include<stdio.h>
int main(void)
{
int i=0,c=0;
for(i=0;i<N;i++)
{
c=getchar();
switch (c)
{
case '0':printf("zero ");break;
case '1':printf("one ");break;
case '2':printf("two ");break;
case '3':printf("three ");break;
case '4':printf("four ");break;
case '5':printf("five ");break;
case '6':printf("six ");break;
case '7':printf("seven ");break;
case '8':printf("eight ");break;
case '9':printf("nine ");break;
}
}
}
搜索更多相关的解决方案:
SWITCH
----------------解决方案--------------------------------------------------------
没看明白你表达的意思。。。
----------------解决方案--------------------------------------------------------
你把循环去掉,就可以输入一个数显示一个英文。。。。。
不去掉循环,你可以连续输入20个数。。。然后显示20个数的英文
----------------解决方案--------------------------------------------------------
我认为问题是,首先变量c的数据类型应该是字符型,还有就是这是个死循环
----------------解决方案--------------------------------------------------------
我刚才看了你给别人是这样回的。
你问的问题不知是否可以这样理解?
就是getchar()每次只能接收一个字符,但是用户一次键入多个字符后,他先接收一个,等到第二次再接收一个……?
我瞎猜的,不知对不对。
我想重新编一个,编了好久都没有弄出来。
----------------解决方案--------------------------------------------------------
4楼:我觉得这不是死循环啊?他有终止循环的条件:i<20 ,应该不是吧?是我理解错了吗?
----------------解决方案--------------------------------------------------------
不是死的,这个程序功能不预期的还“强大”,我就纳闷了。。 竟然可以连续输入。。
----------------解决方案--------------------------------------------------------
都是循环的功劳
----------------解决方案--------------------------------------------------------
你输入的本来就是字符.....即便你输入的看上去是个数字...那是数值上是数字...但其实是字符...
因为你用的getchar();
----------------解决方案--------------------------------------------------------
这个程序,本来是应该是每输入一个字符,它就应该输出相应的英文字母,而不是输入好多个后才一个一个显示的.,你看看是不是应该这样?
----------------解决方案--------------------------------------------------------