【发布时间】:2015-10-18 16:27:50
【问题描述】:
所以我试图制作一个可以找到非常高数字的平均值的 c++ 程序(范围是
这是我的尝试:
#include <iostream>
int main()
{
long double a,b,result;
std::cin>>a;
std::cin>>b;
result=(a+b)/2;
std::cout<<result<<"\n";
}
但不知何故,我没有达到我预期的结果。我的老师说有一个“技巧”,甚至不需要使用双重。但我搜索和研究并没有找到诀窍。有什么帮助吗?
【问题讨论】:
-
首先,结果是什么,预期的结果是什么?那么,为什么这两者不同,为了达到正确的结果需要做些什么不同的事情呢?另外,导致问题的输入是什么?也可以考虑使用字符串流来模拟输入!
-
64 位 int... 几乎可以工作... doubles 只会给出一个近似值...
-
@UlrichEckhardt 我得到的结果是指数数字。如果我输入 10^19 和 10^19(当然是正常数字),我会得到 1e+019 但我希望我的结果不是指数数字(10000000000000000000)。
-
如果你的老师说有一个“技巧”,我想它一定与这两个数字有关。它会帮助你描述你目前在课堂上学习的主题,并给出你任务的完整措辞。