非齐次方程组代码(C++)

来源:互联网 发布:什么叫数据标签 编辑:程序博客网 时间:2024/06/10 14:51
/*先输入未知数个数。然后输入n*(n+1)的行列式。*/#include <stdio.h>#include <stdlib.h>int hanglieshi(int a[],int n){    int j,s;    if(n==1)  s=a[0];    else    {        for(s=0,j=0; j<n; j++)        {            int yuzishi(int x,int b[],int y);            if((j%2)==0)            {                s=s+a[j]*yuzishi(j,a,n);            }            else            {                s=s-a[j]*yuzishi(j,a,n);            }        }    }    return s;}int yuzishi(int x,int b[],int y){    int m,l,k=(y-1)*(y-1),q,c[k];    for(m=y,l=0; m<y*y; m++,l++)    {        if(m%y==x)   m++;        c[l]=b[m];    }    q=hanglieshi(c,y-1);    return q;}int main(){    int n,h;    while(~scanf("%d",&n))    {        int x[n*n+n];        for(h=0; h<n*n+n; h++)        {            scanf("%d",&x[h]);        }        int tmp[n*n],cur=0;        do        {            for(int i=0;i<n;i++)                for(int j=0;j<n;j++)                    if(cur!=j)tmp[i*n+j]=x[i*(n+1)+j];                    else tmp[i*n+j]=x[i*(n+1)+n];            puts("");            for(int i=0;i<n;i++)                for(int j=0;j<n;j++)                    printf("%d%c",tmp[i*n+j],j==n-1&&i!=n-1?'\n':' ');            if(cur==n)printf(" ------D=%d\n",hanglieshi(tmp,n));            else printf(" ------D%d=%d\n",cur+1,hanglieshi(tmp,n));        }while(++cur<=n);        printf("------over-------");    }    return 0;}/*41 1 1 1 51 2 -1 4 -22 -3 -1 -5 -23 1 2 11 0*/

0 0
原创粉丝点击