白衣非少年
因为你的fac函数里面直接用n*=i,这样n不断增大,导致i一直小于n,死循环了给你改了,代码如下,请采纳123456789101112131415161718192021222324#include<iostream> #include <cmath> using namespace std;double fac(double n,double m){ int i; int n1=1,m1=1; for(i=1;i<=n;++i) n1*=i; for(i=1;i<=m;++i) m1*=i; double nm = 1; for(i=1;i<=n-m;++i) nm*=i; double y = n1/(nm*m1); return y;}int main(){ double y = fac(3,2); cout<<y<<endl; system("pause"); return 0;}你不是要算组合数?分母中应该加括号