自学C语言小白求解疑。求高手帮帮忙!

#include <stdio.h> void main() { double t; int i=1,n=1; for(i=1;i<=n;i++); { t=1.0/i; } printf("t=%f\n",t); }
为什么t=0.5?

#include <stdio.h> void main() { double t; int i=1,n=1; for(i=1;i<=n;i++); { t=1/i; } printf("t=%f\n",t); }
这样的话t=0?

#include <stdio.h> double fun(int n) { double t,s; int i; t=1; for(i=1;i<=n;i++); { t*=1/i; s+=t; } return s; } main() { int n; double s; printf("Input n: "); scanf("%d",&n); s=fun(n); printf("s=%f\n",s); }
我是在做这个函数,这样编写有什么问题吗?