📄 gauss消元法----不选主元.txt
字号:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#define max_n 200//阶数
#define precision 0.000001//精度
void matrix1(float a[][max_n],int m,int n)//输入矩阵函数
{
int i,j;
float t;
printf("\n===Begin to input the matrix===\n");
for(i=1;i<=m;++i)
{
printf("Input line %d:",i);
for(j=1;j<=n;++j)
{
scanf("%f",@t);
a[i][j]=t;
}
}
}
void matrix2(float a[][max_n],int n,int k)//输出矩阵函数
{
int i;
for(i=1;i<=n;++i)
printf("\nx[%d]=%f",i,a[i][k]);
}
void triangle(float u[][max_n],int n)
{
int i,j;
float(i=n;i>0;--i)
{
if(fabs(u[i][j])<precision)
return 1;
for(j=i+1;j<=n;++j)
u[i][n+1]-=u[i][j]*u[j][n+1];
u[i][n+1]/=u[i][j];
}
return 0;
}
int Guass(float a[][max_n],int n)//Guass消元
{
int i,j,k;
for(i=1;i<n;++i)
{
if(fabs(a[i][j])<precision)
return 1;
for(j=i+1;j<=n;++j)
for(k=i+1;k<=n+1;++k)
a[j][k]-=a[i][k]*a[j][i]/a[i][i];
}
triangle(a,n);
return 0;
}
void main()
{
int n;
float a[max_n][max_n];
printf("\ninput n=");
scanf("%d",&n);
if(n>max_n-1)
{
printf("\n\007n must <%d!",max_n);
exit(0);
}
matrix1(a,n,n+1);
if(Guass(a,n))
printf("\nGuass Failed!")
else
{
printf("\nSolution:");
matrix2(a,n,n+1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -