请问大家为什么显示未定义的标识符?

#include
long factorial(int n)
{
int i=1;
for(;n>1;n--)
{
i=i*n;
}
return i;
}//定义求阶乘的函数factorial
int main()
{
int a;
scanf("%d",&a);//输入一个值
long sum=0;
for(;a>0;a--)
{
sum=sum+factorial(a);
}//求1到a的阶乘和
printf("sum=%d\n",sum);
return 0;
}

请问大家为什么运行时显示sum是未定义的标识符呢?

麻烦你将代码和错误截图发出来看看

img

你看一下你的跟我的有什么区别,我的没有报错哟~

觉得有帮助的话,可以点击一下 采纳 哟,谢谢~

long输出用%ld


可以查看手册:c++-未定义行为 中的内容