快捷导航

代码运行后输入一个值然后会出现一个10,为什么?

#include
int main(void)
{
    char c;
    int i,n;
scanf("%d", &n);
for(i=0;i= '0' && c = 'a' && c = 'A' && c = '0' && c = 'a' && c = 'A' && c

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

问题出在 scanf("%c", &c) 这一句。准确地说,出在第二次执行这句代码的时候。
你输入之后一般会回车吧。这个换行符也会留在输入缓冲区中,而 %c 会匹配输入流中的任何一个字符,所以就会读到上次剩下的换行符'\n'。
解决办法是在格式化字符串中的 %c 前加一个空格,比如 scanf(" %c...


具体可以看我在另一个问题下的详细回答http://www.imooc.com/wenda/detail/381183
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP