一个令我这个c语言新生迷惑的问题,望帮助(论在线编译器与自己下载的如devc++这种编译器 一道求简单阶乘的问题输出结果不同)


#include <stdio.h>
 
 
 
int main()
{
    int n1,n2;
    scanf("%d,%d",&n1,&n2);
    int tmp;
    if(n1>n2)
    {
        tmp=n1;
        n1=n2;
        n2=tmp;
 
    }
    int i=n1,j;
    int sum1=1;
    int sum2=0;
  
    
    for(i=n1;i<=n2;i++)
    {
        for(j=1;j<=i;j++)
        {
            sum1*=j;
        }
        printf("%d\n",sum1);
        sum2+=sum1;
        sum1=1;
        
    }
    printf("%d",sum2);
    
    
 
 
    return 0;
}



下面是输入相同的7和8在在线编译器得到的结果

img

img


(希望大家可以帮忙解释一下这种现象,感谢帮助)
这是一个求阶乘的方法,在devc++的结果如图所示(当输入7和8时){发现跟上面的不同}

img

(这个代码的问题是任意输入两个不相等的整数n1和n2,如果n1大于n2,则交换他们的值,输出从n1到n2(包括n1和n2)之间所有数的阶乘,最后再输出他们的总和,在测试平台上输入7和8我的答案会出现1,2,3的阶乘。希望各位可以帮忙解答,十分感谢)