Mình nghĩ là code không đúng lắm hoặc muốn dừng ở đó một chút.C Code:
p=1; for (i=1;i<=n;++i)// ;//Đoạn này có ; thì thành ra chẳng có vòng for thì kết quả vẫn vậy p=p*gt(i);
Nếu bỏ dấu ; đi thì thành tính tích 1!2!...n!.
Nếu thế này thì sẽ in ra 1!, 2! ... n!
C Code:
for (i=1;i<=n;i++) { p=gt(i); }
Mà đoạn này sai rồi:
Sửa lại:C Code:
long double gt(int i) { long double tam; int k; tam = 1; for (k = 1 ; k < i ; k++) //Làm như thế thì nó tính (n-1)! tam=tam*k; return(tam); }
Hoặc:C Code:
long double gt(int i) { long double tam; int k; tam = 1; for (k = 1 ; k++ < i;) tam=tam*k; return(tam); }
C Code:
long double gt(int i) { long double tam; int k; tam = 1; for (k = 1 ; k <= i; k++) tam=tam*k; return(tam); }