while(n>=i),但你初始时n为1,你觉得n>=i能成立吗?改成n<=i
你这个while根本就进不去,判断条件写错了,把他们交换位置就好了
#include <stdio.h> int main() { double a=1,i,n=1; scanf("%lf",&i); while (i >= n){ a*=n; n+=1; } printf("%lf",a); return 0; }