楼主只考虑了输入的a为1的情况。
#include<stdio.h>
int main()
{
int a,c;
long b=1;
scanf("%d%d",&a,&c);
while(a<=c)
{
b=b*a;
a++;
}
printf("%ld",b);
return(0);
}
#include<stdio.h>
int main()
{
int a,c;
long b=1;
scanf("%d%d",&a,&c);
while(a<=c)
{
b=b*a;
a++;
}
printf("%ld",b);
return(0);
}

倚天照海花无数,流水高山心自知。