【【【一个简单的小问题,不知怎么解决

buyaozaiwangji 2009-03-14 08:13:43
#include<iostream>
using namespace std;
int main()
{
float sum=0,a;
int i=0;
while(cin>>a,i<11)
{
sum+=a;
i++;
}
cout<<"$"<<sum/12.00<<endl;
return 0;
}

运算结果不正确,小数有误差
100.00
489.12
12454.12
1234.10
823.05
109.20
5.27
1542.25
839.18
83.99
1295.01
1.75
Sample Output
$1581.42……………………………………………………我的结果后面不是42,而是27-_-!
...全文
77 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
savvyzheng 2009-03-14
  • 打赏
  • 举报
回复
你读了11个数据,而不是12个,0-11包含11,应该是<=11
aaaa3105563 2009-03-14
  • 打赏
  • 举报
回复
学习了
hmt.sysfixer.net 2009-03-14
  • 打赏
  • 举报
回复
MARK
arong1234 2009-03-14
  • 打赏
  • 举报
回复
浮点数本来就不准确,就是有点不同也很正常
tangshuiling 2009-03-14
  • 打赏
  • 举报
回复

循环条件逻辑错误,读入12组数据,累加了11个
改成:
while(i <11)
{
cin>>a;
sum+=a;
i++;
}

while(cin>>a,i<11) //以后在不是很明白此等语句的情况下,尽量少玩这种小花招
//“,”表达式以后面的表达式作为其值,当i=11时,cin语句由于在i<11的前面,会多要求输入一次
bitxinhai 2009-03-14
  • 打赏
  • 举报
回复
你读进去了11个数字吧,
应该不是12个!!!!!
  • 打赏
  • 举报
回复
while(cin>>a,i <11)
第一次见这样的写法,不应该是
while(cin>>a&&i <11)

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧