?? 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 + -