c++简单题,跪求高手解答

2025-03-10 18:25:36
推荐回答(1个)
回答1:

先不给你调整个程序,给你提出几个问题:

函数f(int n),你是想返回阶乘的值对吧?
阶乘的算法是n! =n*(n-1)*(n-2).....*2*1
你随便代个数进的函数就发现你的函数写错了。
t是阶乘的基数,应该赋初值为1,而不是为 n
而 t*=n 表达式没错,但是while循环条件错了,不是 --n而是 n--
仔细想想。

在主函数中,很明显的一个错误就是,你的for循环中,i越界了,int 型变量的值范围你找找书看,好象是在 65535,过了就越界了。

然后,你的main函数的中的变量名完全不用跟你函数的参数同名或者相似。否则容易引起自己和机器的误解,如果必须用的时候,都是要加this指针的。