首页 新闻 搜索 专区 学院

c语言关于scanf函数的问题

0
[已解决问题] 解决于 2015-02-19 16:19

#include <stdio.h>
int main()
{
 int i,t;
 for(i=0;i<4;i++)
 {
  scanf("%d",&t);
  printf("%d\n",i);
 }
}

当输入字母a时,为什么程序连续循环了3次。

.c
问题补充:

首先谢谢你们。

问题是:我输入a和97时,运行结果差很多。

余永彬的主页 余永彬 | 菜鸟二级 | 园豆:204
提问于:2013-05-11 20:19
< >
分享
最佳答案
0

因为int与char是可以自动转换的,如果你输入a,那么程序会把a自动转成对应的ASCLL码

奖励园豆:5
面对阳光努力向上 | 初学一级 |园豆:179 | 2013-06-19 19:33

#include <stdio.h>
int main()
{
 int i,t;
 for(i=0;i<4;i++)
 {
  scanf("%d",&t);

//清空缓存
 fflush(stdin);
  printf("%d\n",i);
 }
}

这样就不会出现循环三次的情况了

面对阳光努力向上 | 园豆:179 (初学一级) | 2013-06-21 08:35

@面对阳光努力向上: Thanks

余永彬 | 园豆:204 (菜鸟二级) | 2014-10-26 23:43
其他回答(1)
0

不知道你那是什么逻辑,你前面定义的t为Int型,为什么会输入a?

cel | 园豆:380 (菜鸟二级) | 2013-05-12 13:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册