📄 1.列主元gauss消去法.cpp
字号:
#define N 3
#include <stdio.h>
void main()
{ double a[N][N+1],b,m,X[N],sum=0,max;
int i,j,k;
printf("please input the data:\n");
for(i=0;i<=N-1;i++) /*shu ru zeng guang ju zhen*/
for(j=0;j<=N;j++)
{ scanf("%lf",&b);
a[i][j]=b;
}
for(i=0;i<=N-1;i++) /*shu chu ju zhen*/
for(j=0;j<=N;j++)
{ printf("%lf ",a[i][j]);
if((j+1)%(N+1)==0)
printf("\n");
}
printf("\n");
for(k=0;k<=N-2;k++) /*zuo xia san jiao ju zhen*/
{
max=a[k][k]; /*lie zhu yuan*/
for(j=0;j<=N;j++)
for(i=k+1;i<=N-1;i++)
{ if(a[i][j]>max) max=a[i][j];}
i=i-1;
for(j=k;j<=N;j++) /*dui huan */
{ max=a[i][j];
a[i][j]=a[k][j];
a[k][j]=max;
}
if(a[k][k]!=0) /*xiao qu*/
for(i=k+1;i<=N-1;i++)
{ m=a[i][k]/a[k][k];
for(j=k;j<=N;j++)
a[i][j]=a[i][j]-m*a[k][j];
}
}
for(i=0;i<=N-1;i++) /*shu chu xia san jiao ju zhen*/
for(j=0;j<=N;j++)
{ printf("%lf ",a[i][j]);
if((j+1)%(N+1)==0)
printf("\n");
}
printf("\n");
X[N-1]=a[N-1][N]/a[N-1][N-1]; /*qiu chu X*/
for(k=N-2;k>=0;k--)
{ for(j=k+1;j<=N-1;j++)
sum+=a[k][j]*X[j];
X[k]=(a[k][N]-sum)/a[k][k];
sum=0;
}
for(i=0;i<=N-1;i++) /*shu chu x*/
printf("X[%d]=%lf ",i+1,X[i]);
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -