hipod 2009-10-24 16:31
浏览 387
已采纳

c程序求行列式的值的问题?

[code="c"]
#include
#include
#include

/*a为行列式,n为行列式的阶*/
int f(int **a,int n)
{
int i,j,k;
int len;/*子行列式的阶*/
int s=0;

len = n-1;

/*按照定义,初始化一个子行列式数组的空间*/
int **p = (int **)malloc(sizeof(int *)*len);
for(i=0;i<len;i++)
    *(p+i) = (int *)malloc(len);

/*阶为2,按照定义计算*/
if( 2==n ) 
    return a[0][0]*a[1][1]-a[1][0]*a[0][1];

for( k=0; k<n; k++)
{
    for(i=0;i<len;i++)
        for(j=0;j<len;j++)
        {
            if(i<k)
                *(*(p+i)+j) = a[k][j+1];/*初始化子行列式的值*/
            if(i>k)
                *(*(p+i)+j) = a[k+1][j+1];
        }
    s += (int)pow(-1,i+j) * f(p,len);/*递归计算*/
}

free(p);
return s;

}

void main()
{
int a[3][3] = {1,2,4,5,7,9,12,11,8};
int **p = a;
printf("%d",f(p,3));
}
[/code]
[b][size=large]思路很清楚,就是按照定义求值,但调试总是出错,请大家指点下[/size][/b]
[b]问题补充:[/b]
一楼的童鞋,这里是二维数组,我想要体现维度
[b]问题补充:[/b]
主要是要调试成功,并且有结果

  • 写回答

2条回答 默认 最新

  • JavaSxy 2009-10-26 16:27
    关注

    自己看吧:
    [code="c"]#include
    #include
    #include

    /*a为行列式,n为行列式的阶*/
    int f(int **a,int n)
    {
    int i,j,k;
    int len;/*子行列式的阶*/
    int s=0;

    len = n-1;
    
    /*按照定义,初始化一个子行列式数组的空间*/
    int **p = (int **)malloc(sizeof(int *)*len);
    for(i=0;i<len;i++)
        p[i] = (int *)malloc(sizeof(int)*len);
    
    /*阶为1,按照定义计算*/
    if( 1==n ) 
        return a[0][0];
    
    for( k=0; k<n; k++)
    {
        for(i=0;i<len;i++)
            for(j=0;j<len;j++)
            {
                if(i<k)
                    p[i][j] = a[i][j+1];/*初始化子行列式的值*/
                if(i>=k)
                    p[i][j] = a[i+1][j+1];
            }
        s += (int)pow(-1,k) * a[k][0]* f(p,len);/*递归计算*/
    }
    for(i=0;i<len;i++) free(*(p+i));
    free(p);
    return s;
    

    }

    int main()
    {
    int i;
    int a[3][3] = {1,2,4,5,7,9,12,11,8};
    int **p = (int **)malloc(sizeof(int *)*3);
    for(i=0;i<3;i++) p[i] = a[i];
    printf("%d",f(p,3));
    free(p);
    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用