#include
<
math.h
>
#include
<
stdio.h
>
#define N
20
#define M
99
float
a[N][N];
float
b[N];
int
main()
{
int
i,j,k,n;
float
sum,no,d,s,x[N];
printf(
"
/nInput dim of n:
"
);
scanf(
"
%d
"
,
&
n);
if
(n
>
N)
{ printf(
"
Faild! Check if 0<n<N!/n
"
); getch();
return
1
;
}
if
(n
<=
0
)
{ printf(
"
Faild! Check if 0<n<N!/n
"
);getch();
return
1
;}
printf(
"
Input a[i,j],i,j=0…%d:/n
"
,n
-
1
);
for
(i
=
0
;i
<
n;i
++
)
for
(j
=
0
;j
<
n;j
++
)
scanf(
"
%f
"
,
&
a[i][j]);
printf(
"
Input b[i],i=0…%d:/n
"
,n
-
1
);
for
(i
=
0
;i
<
n;i
++
) scanf(
"
%f
"
,
&
b[i]);
for
(i
=
0
;i
<
n;i
++
) x[i]
=
0
;
k
=
0
;
printf(
"
/nk=%dx=
"
,k);
for
(i
=
0
;i
<
n;i
++
) printf(
"
%12.8f
"
,x[i]);
do
{ k
++
;
if
(k
>
M){printf(
"
/nError!/n”);getch();}
break
;
}
no
=
0.0
;
for
(i
=
0
;i
<
n;i
++
)
{ s
=
x[i];
sum
=
0.0
;
for
(j
=
0
;j
<
n;j
++
)
if
(j
!=
i) sum
=
sum
+
a[i][j]
*
x[j];
x[i]
=
(b[i]
-
sum)
/
a[i][i];
d
=
fabs(x[i]
-
s);
if
(no
<
d) no
=
d;
}
printf(
"
/nk=%2dx=
"
,k);
for
(i
=
0
;i
<
n;i
++
) printf(
"
%f
"
,x[i]);
}
while
(no
>=
0.1e-6
);
if
(no
<
0.1e-6
)
{ printf(
"
/n/n answer=/n
"
);
printf(
"
/nk=%d
"
,k);
for
(i
=
0
;i
<
n;i
++
)
printf(
"
/n x[%d]=%12.8f
"
,i,x[i]);
}
getch();
}