📄 高斯 赛德尔迭代.c
字号:
#include<stdio.h>
#include<math.h>
void main()
{
float a[11][12],x[2][11],t,e;
int n,Num,i,j,k,flag=0;
printf("input iterative times:");
scanf("%d",&Num);
printf("input error rang:");
scanf("%f",&e);
printf("input unknown numbers<max=10>:");
scanf("%d",&n);
printf("input all quotieties:\n");
for(i=1;i<=n;i++)
for(j=1;j<=n+1;j++)
scanf("%f",&a[i][j]);
for(i=1;i<=n;i++)x[0][i]=x[1][i]=0;
for(i=1;i<=n;i++)printf("%f ",x[1][i]);printf("\n");
for(k=1;k<=Num;k++)
{
for(i=1;i<=n;i++)
{t=0;
for(j=1;j<=i-1;j++)
t+=a[i][j]*x[1][j];
for(j=i+1;j<=n;j++)
t+=a[i][j]*x[1][j];
x[1][i]=(a[i][n+1]-t)/a[i][i];
}
for(i=1;i<=n;i++)printf("%f ",x[1][i]);printf("\n");
for(i=1;i<=n;i++)if(fabs(x[1][i]-x[0][i])<=e)flag+=1;
if(flag==n)break;
else for(i=1;i<=n;i++)x[0][i]=x[1][i];
}
if(k>Num)printf("\nno roots");
else {printf("\nThe roots:");for(i=1;i<=n;i++)printf("%f ",x[1][i]);}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -