首页 > 代码库 > 非齐次方程组代码(C++)
非齐次方程组代码(C++)
/* 先输入未知数个数。 然后输入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; } /* 4 1 1 1 1 5 1 2 -1 4 -2 2 -3 -1 -5 -2 3 1 2 11 0 */
非齐次方程组代码(C++)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。