只要输入任何字母,就打出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
----------------解决方案--------------------------------------------------------