功能:已知有一三元一次方程组如下
,
方程系数由键盘输入,求其
3
个根。
*/
# include
int main(void)
{
int i, j, m, n, r, k=0, t; //i,j,m,k,t
作为循环计数变量;
n
表示有
n
个未知数,即
n
元;
r
表示有
r
个方程组成方程组。
//
n = r = 3;
printf("
请输入未知数个数
n
和方程的个数
:\n");
scanf("%d %d", &n, &r); //n
表示有
n
个未知数,即
n
元;
r
表示有
r
个方程
组成方程组。
float a[11][20]; //
用二维数组存储方程组参数。
11
和
100
课改动。这里
的程序限
10
元
20
个方程的方程组。
float b[200]; //
原来存放之间变量。
printf("
请输入方程组参数
\n");
for(j=0; j
for(i=0; i
scanf("%f", &a[j][i]);
/*
for(j=0; j
用。
{
for(i=0; i
printf("%f ", a[j][i]);
printf("\n");
}
float a[10][20]={{2,2,-1,6},{1,-2,4,3},{5,7,1,28}};
*/
if(r
printf("
方程有无穷解
\n");
if(r==n)
{
printf("
方程有唯一解
\n");
for(t=0; t
t=0
时,仅将
a[1][0],a[2][0],a[2][1]
的值转换为
0
;
t=1
时,才将其转换成最简型阶梯矩阵。
{
for(m=0; m
m
列
for(j=0; j
j
行
if(j!=m)
{
b[k] = a[j][m]/a[m][m];
for(i=0; i
元素均要进行运算等式两边才会相等。
a[j][i] -= a[m][i]*b[k];
b[k]=0; //
此处是必不可少的。因为内
存中会有垃圾值,必须要处理。
k++;
}
}
for(j=0; j
98
页。
{
a[j][n] /= a[j][j];
a[j][j] /=a[j][j];