📄 3.c
字号:
#include "stdio.h"
#include "math.h"
#define N 20
float c,a[N][N],x[N],b[N],e,r[N],r1[N],r2[N],x0[N],max;
void B(float s, float d[N],int n)
{
int i;
for(i=0;i<n;i++)
r1[i]=s*d[i];
}
void ax(float y[N][N],float z[N],int n)
{
int i,j;
for(i=0;i<n;i++)
r2[i]=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
r2[i]=r2[i]+y[i][j]*z[j];
}
}
void plus(float p[N],float q[N],int n)
{
int j;
for(j=0;j<n;j++)
x[j]=p[j]+q[j];
}
void minus(float p[N],float q[N],int n)
{ int i;
for(i=0;i<n;i++)
r[i]=p[i]-q[i];
}
float rr(float s[N],float t[N],int n)
{
int i;float h=0;
for(i=0;i<n;i++)
h=h+s[i]*t[i];
return h;
}
main()
{
int i,j,n,m=1;
printf("***********************************************\n");
printf(" Please ensure A is the zheng ding de\n");
printf("***********************************************\n");
printf("input the size of the array: ");
scanf("%d",&n);
printf("input A:\nA=\n") ;
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
scanf("%f",&a[i][j]);
}
printf("input b:\nb=");
for(i=0;i<n;i++)
scanf ("%f",&b[i]);
printf("input x0:\nx0=");
for(i=0;i<n;i++)
scanf ("%f",&x0[i]);
printf("input the size of the e:\ne= ");
scanf("%f",&e);
for(i=0;i<n;i++)
x[i]=x0[i];
ax(a,x0,n);
minus(b,r2,n);
while(1)
{
max=fabs(r[0]);
for(i=1;i<n;i++)
if (fabs(r[i])>max)
max=fabs(r[i]);
if(max<=e)
break;
ax(a,r,n);
c=rr(r,r,n)/rr(r2,r,n);
B(c,r,n);
plus(x,r1,n);
B(c,r2,n);
plus(r,r1,n);
printf("\nB%d:",m);
for(i=0;i<n;i++)
{
printf("x[%d]=%f ",i+1,x[i]);
}
printf("\n");
m++;
if(m>100)
break;
}
if(m==1)
printf("x0 is the answer!");
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -