| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 459 人关注过本帖
标题:请教关于scanf函数的问题
只看楼主 加入收藏
zj198771xl
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-1
收藏
 问题点数:0 回复次数:1 
请教关于scanf函数的问题
请大家看下面这个若干数求和的程序:

#include <stdio.h>
main()
{ int a=0,sum=0;
 printf("input data:");
 scanf("%d",&a);
 while(a!=0)
   {printf("%4d",a);
    sum=sum+a;
    scanf("%d",&a);
   }
  printf("\nsum=%d\n",sum);
}

运行结果是:
input data:11 22 33 44 55 66 77 88 99 0 1 2 (Enter)
11 22 33 44 55 66 77 88 99
sum=495

这个程序很简单,我也看得懂,但是我有些地方不太明白:我认为是
当执行到printf时,就会有提示信息"input data:",然后用户输入一个数据a,如果数据不为0,则输出a,然后求和,之后用户再次输入一个数据,继续判断,如果输入的数是零则推出循环,并输出sum=?
  可是根据书上的运行结果来看,数据是一次输入的,那么scanf和printf函数是怎么处理数据输入输出的,谁能帮我仔细分析一下?
搜索更多相关主题的帖子: scanf 函数 
2008-12-04 10:06
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1696
专家分:4295
注 册:2007-12-27
收藏
得分:0 
你输入的东西就放进缓冲区了,scanf执行的时候如果缓冲区里面有内容,就直接读缓冲区内容,如果缓冲区空,就等着你输入点什么(也是放进缓冲区,再由它读进去)。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2008-12-04 10:25
快速回复:请教关于scanf函数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028863 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved