| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1005 人关注过本帖
标题:求助c语言一维数组就平均值问题
只看楼主 加入收藏
liquan1989
Rank: 2
等 级:论坛游民
帖 子:27
专家分:12
注 册:2010-1-18
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:3 
求助c语言一维数组就平均值问题
大侠们看看 哪错了 为什么输出 却不是平均值
#include "stdio.h"
main()
{
int a[10],sum=0,i;
float k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
sum=sum+a[i];
k=sum/10;
printf("%f",k);
}
比如我输入12345678910  他输出的确是 5.000 为什么不是5.5
还有 一个不解 为什么 printf不需要写在外面
比如这个样
#include "stdio.h"
main()
{
int a[10],sum=0,i;
float k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{sum=sum+a[i];
k=sum/10;

}printf("%f",k);
}
搜索更多相关主题的帖子: c语言 平均值 
2010-04-22 00:26
李若斌
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:219
专家分:184
注 册:2009-9-30
收藏
得分:10 
int a[10],sum=0,i;   sum你定义的是整形
k=sum/10;    虽然k是float型, 不过运算的过程是一个整形数除以一个整形数。得到的结果也是整形数5。然后强制类型转换成浮点型所以结果是5.0
改一下k=((float)sum)/10   就OK了。 强制类型转成浮点型数在进行除法运算
在for()这个循环里面你要是没加{}  就是只有下面的一个语句在循环内。
你第二个程序你要是运行一下的话就能知道结果是错的
2010-04-22 00:56
liquan1989
Rank: 2
等 级:论坛游民
帖 子:27
专家分:12
注 册:2010-1-18
收藏
得分:0 
回复 2楼 李若斌
刚才我测试了··
改后这样运行的结果也是正确的
#include "stdio.h"
main()
{
int a[10],sum=0,i;
float k;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{sum=sum+a[i];
k=((float)sum)/10;}
printf("%f",k);
}
不过 还是谢谢你  3Q
2010-04-22 01:14
李若斌
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:219
专家分:184
注 册:2009-9-30
收藏
得分:0 
题目的意思应该是输出一个平均数。  你第一个程序就是一个平均数。第二个就会输出10个平均数。你自己理解吧
printf在循环内。就会执行10次
在循环外就只执行一次。所以我说你第二个错的。是和题目的意思相违背。不是说你程序是错的。
2010-04-22 08:40
快速回复:求助c语言一维数组就平均值问题
数据加载中...
 
   



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

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