用C语言编一个程序?
来源:百度知道 编辑:UC知道 时间:2024/05/04 18:59:21
对于你的提问不是很清楚,不知您是否要求n的阶层。如果是的话不防看看这个程序:
int function(int n)
{
if (n==1 || n==0)
return 1;
else
return n*function(n-1);
}
我们把函数展开以后 变成了下面这样:
int function(int n){
if (n==1 || n==0)
return n*function(n-1);
else
return -n*function(n+1);
}
我们考虑n = 3的情况 正确的结果应该是3*2*1 = 6
这里我把function简写成f
先考虑f(3) 因为f(3)不满足(n==1 || n==0)
所以执行else里的语句
所以f(3) = -3 * f(3+1); = -3 * f(4);
那么同理得出 f(4) = -4*f(5)
f(5) = -5*f(6)
这样下去 n越来越大 没有尽头 所以引起了错误
#include <stdio.h>
double det3(double mat[][3])
{
return mat[0][0] * mat[1][1] * mat[2][2] +
mat[0][1] * mat[1][2] * mat[2][0] +
mat[1][0] * mat[2][1] * mat[0][2] -
mat[2][0] * mat[1][1] * mat[0][2] -
mat[1][0] * mat[0][1] * mat[2][2] -
mat[2][1] * mat[1][2] * mat[0][0];<