c语言科学计数法输出,

2022-08-22 教育 88阅读
如果这是一道考试题的话,凑合着答也就可以了。
说实话,这道题本身有大问题啊!
int类型的数据,就算在VC下,其与long一致:4B补码,最大表示2147483647。
您先用计算机上的计算器算算30!有多少位?
超出int的表示范围了!
改用double类型吧。而且,你的算法也稍显复杂了:有必要每次都求阶乘么?请看下面的例子:
double s = 1;
int i;

for(i = 1; i <= 30; i++)
{
s *= i;
}
在循环里,每次算出来的s的值,就是要求和的阶乘值啊。所以,可将程序改成:
#include
#include

int main()
{
int i;
double sum = 1;
double t = 0;

for(i=1; i<=30; i++)
{
sum = sum * i;
t += sum;
}

printf("%0.2e", t);
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com