请问这个代码哪里有问题

//输出1!,2!,3!,4!...35!的值。
#include<stdio.h>

int main()
{
    int a=1;
    double term=1,sum=0;
    while(a<=35)
    {
        sum=term;
        a++;
        term*=a;
        printf("%d\n",sum);
    }
    
}

sum是double类型,用printf("%.0lf\n",sum);

#include<stdio.h>
void main(void)
{
 int i,j;
 double jc;
 j=1;jc=1;i=1;
 do{
     jc = 1;//增加初始化
     j =1;//增加初始化
     do{
         jc==jc*j;//计算阶乘
         j++;
     }while(j<=i);
  
    printf("%d!=%lf\n",i,jc);
    i++;
 }while(i<=35);
  
}

这几句顺序有点问题
sum=term;
a++;
term*=a;
---》
term*=a;
sum=term;
a++;
还有printf("%d\n",sum);
--》printf("%lf\n",sum); sum是double %d是整数