当前位置: 代码迷 >> C语言 >> 只要输入任何字母,就打出649
  详细解决方案

只要输入任何字母,就打出649

热度:142   发布时间:2005-04-11 17:43:00.0
只要输入任何字母,就打出649
#include<stdio.h>
main(){int i,j;m=5;
while(m!='n'){fflush(stdin);scanf("%d%c",&i,&j);
printf("%d%c",i,j);while((m=getchar())=='\n');}}
输入:yy(回车)
打出649
输入y
  
打出649
以后只要输入任何字母,就打出649
不知道是怎么回事
搜索更多相关的解决方案: 字母  输入  

----------------解决方案--------------------------------------------------------
#include<stdio.h>
main()
{int i,j,m=5;
  while(m!='n')
   {fflush(stdin);
    scanf("%d%c",&i,&j);
    printf("%d%c",i,j);
    while((m=getchar())=='\n');
   }
}
他函数是要你输入一个整数。然后在输入一个字符。直到输入的字符是'n'的时候。他程序就结束了。你的编程风格太差了。当别人运行你的代码时。就一个光标在那里闪动。谁知道你要别人做什么。。你起码也搞个提示吧!

坚强依然!永不言苦!永不言败!睇透数据结构!编程编程再编程!-----激情依旧

----------------解决方案--------------------------------------------------------
经过跟踪后发现问题答案了: #include<stdio.h> void main() { int i=10,j='a',m=5;//注意这里的初始化 while(m!='n') { fflush(stdin); scanf("%d%c",&i,&j); printf("%d%c",i,j); fflush(stdin);//add while((m=getchar())==10);//楼上的注意了只要不是回车那么就退出这个while } } 现在按照楼主的要求输入发现么!为什么!因为输出的是默认初始化的那些i和j的值 经过跟踪后发现问题的所在,当scanf("%d%c",&i,&j); 发生无法匹配输入的时候处理的方式是不进行任何的字符提取,函数返回! 这样i和j就不可能改变了! scanf("%d%c",&i,&j); printf("%d%c",i,j); scanf("%c%d",&i,&j); printf("%c%d",i,j); 这段代码可以验证是否发生了字符提取,测试数据使用c12
----------------解决方案--------------------------------------------------------
  相关解决方案