C 如何使函数适用于非常大的数字?
我应该写一个函数,用long-long计算C中三个数字的平均值。(是的,不是程序,不是函数)对于C 如何使函数适用于非常大的数字?,c,function,C,Function,我应该写一个函数,用long-long计算C中三个数字的平均值。(是的,不是程序,不是函数)对于a=LLONG_MAX和b=LLONG_MAX和c=LLONG_MAX,平均值也是LLONG_MAX # include <stdio.h> long long avg3(long long a, long long b, long long c) { long long average; if (a == 9223372036854775807 && b ==
a=LLONG_MAX
和b=LLONG_MAX
和c=LLONG_MAX
,平均值也是LLONG_MAX
# include <stdio.h>
long long avg3(long long a, long long b, long long c)
{
long long average;
if (a == 9223372036854775807 && b == 9223372036854775807 && c == 9223372036854775807)
{
average = 9223372036854775807;
return average;
}
else
{
average = (a + b + c) / 3;
return average;
}
}
或
如何修复此问题?您可以使用
\uuu int128
来增加内存
请参见和。因此,基本上我用
\uuu int128 average
替换了长-长平均值
?是的,现在您可以使用数字3.4028237e+38。
avg3 ( -6019974895299362304, -5925017377408534528, -878297245955435520 ) =>
r=-4274429839554444117, s=1874484851682073088
avg3 ( 9223372036854775800, 9223372036854775800, 9223372036854775800 ) =>
r=9223372036854775800, s=3074457345618258594