#include<math.h>
#include<stdio.h>
void main()
{
float a[20][20],b[20],l[20][20],x[20];
float sum=0.0;
int m,n,k,i,j,c,h,f,g;
printf("请输入方程的阶数n:");
scanf("%d",&n);
printf("请输入系数矩阵a:");
for(c=0;c<=n-1;c++)
{
for(h=0;h<=n-1;h++)
{scanf("%d",&a[c][h]);
}
}
printf("请输入b:");
for(f=0;f<=n-1;f++)
{scanf("%d",&b[f]);
} for(k=0;k<=n-1;k++)
{if(a[k][k]==0)
{break;
}
}
if(a[k][k]==0)
{
printf("算法失败!");
}
else
{for(k=0;k<=n-1;k++)
{
for(i=k+1;i<=n-1;i++)
{
l[i][k]=a[i][k]/a[k][k];
b[i]=b[i]-l[i][k]*b[k];
for(j=k+1;j<=n-1;j++)
{
a[i][j]=a[i][j]-l[i][k]*a[k][j];
}
}
}
if(a[k][k]==0&&k==n)
{printf("方程无唯一解");}
else
{
x[n-1]=b[n-1]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
for(j=i+1;j<=n-1;j++)
{sum+=a[i][j]*x[j];
}
x[i]=(b[i]-sum)/a[i][i];
}
for(i=0;i<=n-1;i++)
{printf("%d\n",x[i]);
}
}
}
}
#include<stdio.h>
void main()
{
float a[20][20],b[20],l[20][20],x[20];
float sum=0.0;
int m,n,k,i,j,c,h,f,g;
printf("请输入方程的阶数n:");
scanf("%d",&n);
printf("请输入系数矩阵a:");
for(c=0;c<=n-1;c++)
{
for(h=0;h<=n-1;h++)
{scanf("%d",&a[c][h]);
}
}
printf("请输入b:");
for(f=0;f<=n-1;f++)
{scanf("%d",&b[f]);
} for(k=0;k<=n-1;k++)
{if(a[k][k]==0)
{break;
}
}
if(a[k][k]==0)
{
printf("算法失败!");
}
else
{for(k=0;k<=n-1;k++)
{
for(i=k+1;i<=n-1;i++)
{
l[i][k]=a[i][k]/a[k][k];
b[i]=b[i]-l[i][k]*b[k];
for(j=k+1;j<=n-1;j++)
{
a[i][j]=a[i][j]-l[i][k]*a[k][j];
}
}
}
if(a[k][k]==0&&k==n)
{printf("方程无唯一解");}
else
{
x[n-1]=b[n-1]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{
for(j=i+1;j<=n-1;j++)
{sum+=a[i][j]*x[j];
}
x[i]=(b[i]-sum)/a[i][i];
}
for(i=0;i<=n-1;i++)
{printf("%d\n",x[i]);
}
}
}
}