| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 420 人关注过本帖
标题:c语言求助
只看楼主 加入收藏
henryzxb
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-11-12
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
c语言求助
#include<stdio.h>
main()
{ float  value, total, average; int counter;
  total=0;counter=0; average = 0;
  scanf("%d",&value);
  do {
      total = total + value; counter++;
    scanf ("%f",&value);}
  while (value !=-1);
  if (counter == 0) printf ("No data entered.\n");
  else { average = total / counter;
    printf ("The average of %d values is %f",
        counter,average);}}
我不理解为什么两个scanf的作用,特别是第一个,求大哥大姐帮帮忙。
搜索更多相关主题的帖子: total average counter values 
2012-11-12 21:34
遗矢的老人
Rank: 9Rank: 9Rank: 9
来 自:成都
等 级:蜘蛛侠
威 望:7
帖 子:325
专家分:1131
注 册:2012-7-20
收藏
得分:5 
程序的规范啊!!!看到乱糟糟的都不想看,为了应对do...while()的规则,先搞懂while()和do...while()的区别你就明白了,还就是第一个%d最好改成%f,你定义成浮点,怎么又输入整形
2012-11-12 22:00
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:5 
程序是顺序执行的,do语句里的scanf所接受的值只能用于下一次循环使用,但第一次进入循环时value的值是空的,所以在循环外加一个scanf,使第一次进入循环时value不至于为空,个人认为把do语句里的scanf往前挪两行就不用第一个scanf了


本人新手,说错勿怪

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-12 22:04
henryzxb
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-11-12
收藏
得分:0 
do...while和while 这里没啥    我是搞不懂为什么前面%d而后面%f,请你在考虑一下
2012-11-12 22:05
henryzxb
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-11-12
收藏
得分:0 
你说的也是蛮有道理的   我也是新手
2012-11-12 22:05
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
前面写错了呗

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-11-12 22:07
韩学敏
Rank: 2
等 级:论坛游民
帖 子:52
专家分:26
注 册:2012-11-3
收藏
得分:5 
对啊,你把它统一了不就好了么,都改成%f,我也是新手,我说的不知道对不对,你的total是浮点型的,然后后来的value又定义了整型的,这样整形的加浮点型的最后赋值给浮点型的会不会有问题,请大神求解。。。。
2012-11-12 22:14
woxingx
Rank: 2
等 级:论坛游民
帖 子:46
专家分:68
注 册:2012-11-8
收藏
得分:5 
scanf是输入语句啊,printf是输出,scanf是输入,
2012-11-12 22:51
快速回复:c语言求助
数据加载中...
 
   



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

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