当前位置: 代码迷 >> C语言 >> 初学者的一个菜鸟问题
  详细解决方案

初学者的一个菜鸟问题

热度:136   发布时间:2007-07-20 10:26:29.0
初学者的一个菜鸟问题

该程序在自己机上能正确运行,可是在浙大ACM上提交却不行~WHY?
3Q3Q~~
#include<stdio.h>
int main()
{
double a[12],sum=0;
int i;
for(i=0;i<12;i++)
{
scanf("%lf",&a[i]);

sum+=a[i];
}
printf("%.2lf\n",sum/12);

}


----------------解决方案--------------------------------------------------------
主要是你把数组定义成double类型。double a[12]―>int
----------------解决方案--------------------------------------------------------
可是题目要求输入的是小数呀
----------------解决方案--------------------------------------------------------
sum/12.0 试试

----------------解决方案--------------------------------------------------------
http://bbs.bc-cn.net/viewthread.php?tid=156855
----------------解决方案--------------------------------------------------------

楼上的胡来~~~
为什么要改为sum/12.0??


----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

坚持到底
2007-07-20 11:04:01
水漪儿

来 自:shangshida
等 级:论坛游民
帖 子:147
专家分:10
注 册:2007-7-19
  得分:0 

为什么把数组定义成double类型,而不是float类型?
个人觉得似乎没有什么错误。
但我看到的有些程序好像是这样的:
for(i=0;i<12;i++)
scanf("%lf",&a[i]);
for(i=0;i<12;i++)
{sum+=a[i];}
还是新手,可能不对,还请多多指教!


----------------解决方案--------------------------------------------------------
应该改成sum/12.0

因为你要求的小数
如果你写成sum/12,计算机在默认状况下得出的是整数

所以必须写成sum/12.0 才是正确的

两个结果是不同的


----------------解决方案--------------------------------------------------------
  相关解决方案