关于#c语言#的问题:#用自定义函数的形式编程实现从键盘输入n的值

#用自定义函数的形式编程实现从键盘输入n的值,计算1阶乘加…加n阶乘。(用两种不同方法实现:○1用静态变量保存前一次调用的值,以便下一次调用使用的方法实现○2用局部变量常规方法实现)
请问两种方法的区别是什么呢

#include "stdio.h"
double f(){
  int n,i;
  double sum=1;
  scanf("%d",&n);
  for(i=1;i<=n;i++){
    sum =sum*i;
  }
  return sum;
}
int main(){
  printf("sum=%lf",f());
  return 0;
}