高斯消元法 C 语言程序及其输出结果杨学玉(33)C 语言程序:#include #include #include #define N 10double a[N+1][N+1],b[N+1],x[N+1];/* 用在此处以便可以让下面的程序也调用*/main(){ int n,i,j,k;double temp;printf("请输入方程组的维数:\n");scanf("%d",&n);if(n>N){printf("错误:元素超过初设定的值%d\n",N);exit(0);}printf("开始输入各元素的值:");for(i=1;i<=n;i++){ for(j=1;j<=n;j++) { printf("请输入元素[%d][%d]",i,j);scanf("%lf",&a[i][j]); }printf("请输入常数 b[%d]",j);scanf("%lf",&b[i]);}for(j=1;j<=n-1;j++){ for(i=j+1;i<=n;i++) { temp=a[i][j]/a[j][j]; for(k=1;k<=n;k++) { a[i][k]=a[i][k]-temp*a[j][k]; }b[i]=b[i]-temp*b[j]; }} fun(n,n,a,b);x[n]=b[n]/a[n][n];for(j=n-1;j>=1;j--){ x[j]=b[j]; for(k=n;k>=j+1;k--) { x[j]=x[j]-x[k]*a[j][k]; } x[j]=x[j]/a[j][j];} for(j=1;j<=n;j++){printf("x[%d]=%f\n",j,x[j]);}}/*列出高斯消元后得到的数组*/ fun(int m,int n,double a[N+1][N+1],double b[N+1]) { int i,j; printf("消元后的矩阵是:\n");for(i=1;i<=m;i++){for(j=1;j<=n;j++){ printf("%f",a[i][j]);}printf("\n") ;} }C 语言输出结果:Mat-lab 程序及输出结果: