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