高斯消去法求上三角矩阵
我就照着书写的怎么就错了,求告知。 #include<stdio.h> int main() { int i,j,k ; int n ; int a[100][101] , b[100]; printf("请输入矩阵阶数\n"); scanf("%d",&n) ; //输入系数矩阵 printf("请输入系数矩阵\n"); for(i=1 ; i<=n ; i++) for(j=1 ; j<=n ; j++) scanf("%d" , &a[i][j]); //建立增广矩阵 printf("请输入方程组右边的值\n"); for(i=1; i<=n ; i++) { scanf("%d" , &b[i]) ; a[i][n+1] = b[i] ; } //输出增广矩阵 for(i=1 ; i<=n ; i++) { for(j=1 ; j<=n+1 ; j++) printf("%d\t" , a[i][j]); printf("\n"); } printf("\n"); //高斯消去 for(i=1 ; i<=n-1 ; i++ ) for(j=i+1 ; j<=n ; j++) for(k=n+1 ; k>=i ; k--) a[j][k] = a[j][k] - a[i][k] * a[j][i] /a[i][i] ; //输出消去后的上三角矩阵 for(i=1; i<=n; i++) { for(j=1; j<=n+1; j++) printf("%d\t",a[i][j]) ; printf("\n") ; } }
这里应该会有a[3][4]=a[3][4]-a[2][4]*a[3][2]/a[2][2]的啊,然后运行结果a[3][4]却不对。