代码如下,到输入13时就不对了,应该是差范围了,才学没多久不知道该怎么办?

(计算1!+2!+3!+。。。。+N!)
#include <stdio.h>
void main()
{
long int i=0,n,x=1,y=1,z=1;
while(1)
{scanf("%d",&n);
if(n<=20)
{
for(i=1;z<=n;i++,z++)
{
i=x*z;
if(i>1)
{
y=i+y;
}
x=i ;
}
if(n==1)
printf("1\n");
else
printf("%d\n",y);
}}
}

繁星淼淼
浏览 189回答 3
3回答

吃鸡游戏

long int实际上跟int一样,也只有4个字节。解决办法是用long long。修改三个地方:long int i=0,n,x=1,y=1,z=1;修改为long long i=0,n,x=1,y=1,z=1;scanf("%d",&n);修改为scanf("%lld",&n);printf("%d\n",y);修改为printf("%lld\n",y);注意这里的ll是jkl里的小写l。我用的是Linux上的CodeBlocks,如果是Windows,把%lld换成%I64d,注意前面的字母是HIJK里的大写I。

HUH函数

修改代码如下,将long int 改为double就可以了,你试试#include <stdio.h>void main(){double i=0,n,x=1,y=1,z=1;while(1){scanf("%lf",&n);if(n<=20){for(i=1;z<=n;i++,z++){i=x*z;if(i>1){y=i+y;}x=i ;}if(n==1)printf("1\n");elseprintf("%lf\n",y);}}}

芜湖不芜

c语言的已有的简单类型中没有一个放得下的。如果你想计算,就需要自己想办法,例如 用一个大数组来存储计算结果的每一位等等
打开App,查看更多内容
随时随地看视频慕课网APP