📄 hao1.c
字号:
#include<stdio.h>
#include<stdlib.h>
#define N 20
#include <math.h>
main()
{
int r,i,j,k,n,flag=1;
float p;
static float det=1;
float a[N][N],c,t,b[N],x[N];
printf("please input the size of the arrary");
scanf("%d",&n);
printf("please input the arrary!");
for(i=0;i<=(n-1);i++)
{
for(j=0;j<=(n-1);j++)
scanf("%f",&a[i][j]);
}
printf("please input lie!");
for(i=0;i<n;i++)
scanf("%f",&b[i]);
printf("向量b的值!\n");
for(i=0;i<n;i++)
printf("%f\n",b[i]);
printf("系数矩阵!\n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%f ",a[i-1][j-1]);
printf("\n");
}
for(k=1;k<=n-1;k++)
{
{
r=k;
p=fabs(a[k-1][k-1]);}
for(i=k+1;i<=n;i++)
{
if(p<fabs(a[i-1][k-1]))
{
r=i;
p=fabs(a[i-1][k-1]);
}
}
if(a[r-1][k-1]==0)
{
flag=0;
break;
}
else if(r!=k)
{
for(i=k;i<=n;i++)
{
c=a[k-1][i-1];
a[k-1][i-1]=a[r-1][i-1];
a[r-1][i-1]=c;
}
det*=-1;
{
t=b[k-1];
b[k-1]=b[r-1];
b[r-1]=t;
}
}
for(i=k+1;i<=n;i++)
{
a[i-1][k-1]=a[i-1][k-1]/a[k-1][k-1];
b[i-1]=b[i-1]-a[i-1][k-1]*b[k-1];
for(j=k+1;j<=n;j++)
{
a[i-1][j-1]=a[i-1][j-1]-a[i-1][k-1]*a[k-1][j-1];
}
}
}
if(flag==0)
det=0;
else
{
for(i=1;i<=n;i++)
{
det=det*a[i-1][i-1];
}
if(det==0)
printf("we cannot caculate!");
else
{x[n-1]=b[n-1]/a[n-1][n-1];
for(i=n-1;i>0;i--)
{c=0;
for(j=i+1;j<=n;j++)
{ c+=a[i-1][j-1]*x[j-1];}
x[i-1]=(b[i-1]-c)/a[i-1][i-1];
}
printf("方程组的解是:\n");
for(i=0;i<n;i++)
printf("\nx(%d)=%2f\n",i+1,x[i]);
}
}
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -