C语言编程问题:求 1!+2!+3!+...+n!

2025-03-01 04:07:42
推荐回答(3个)
回答1:

int和long分配的内存空间长度不一样,表示的数值范围不一样。比如可能int有32位的空间,long有64位的空间。n=17超出了整数的表示范围。

这跟编译器的实现方式有关,还与机器的位数有关。比如一个机器用8位表示整型,表示的范围是-128~127(-2^7 ~2^7 -1)。

同理可以计算32位整型的情况。如果超出了这个范围比如128,有的编译器处理的方式就是 -128.类似于一个环,129存储成 -127,long也是这个规律。但是c语言只保证long不小于int,32位机器上long也是32位的跟整型是一样的。

扩展资料:

C语言包含的各种控制语句仅有9种,关键字也只有32个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

C程序中函数的数目实际上是不限的,如果说有什么限制的话,那就是,一个C程序中必须至少有一个函数,而且其中必须有一个并且仅有一个以main为名的函数,这个函数称为主函数,整个程序从这个主函数开始执行。

参考资料来源:百度百科-c语言

回答2:

把int改成float,
把%d换成%f,float比int算的数位多,更大的数用double和%lf

回答3:

C语言经典例子之求1+2!+3!+...+20!的和