# include
int main(void)
{
int i, j, m, n, r, k=0, t; //i,j,m,k,t 作为循环计数变量;n表示有n个未知数,即n元;r表示有r个方程组成方程组。
printf("请输入未知数个数n和方程的个数:\n");
scanf("%d %d", &n, &r); //n表示有n个未知数,即n元;r表示有r个方程组成方程组。
float a[11][20]; //用二维数组存储方程组参数。11和100课改动。这里的程序限 10 元 20 个方程的方程组。
printf("请输入方程组参数\n");
for(j=0; jfor(i=0; i scanf("%f", &a[j][i]);
if(rprintf("方程有无穷解\n");
if(r==n)
{
printf("方程有唯一解\n");
for(t=0; tfor(m=0; m for(j=0; j if(j!=m)
{
float b= a[j][m]/a[m][m];
for(i=0; ia[j][i] -= a[m][i]*b;
}
for(j=0; j{
a[j][n] /=a[j][j];
a[j][j] /=a[j][j];
}
}
for(j=0; jprintf("x[%d] = %f\n", j, a[j][n]); //输出最终结果,即未知数x,y,z...的值。
return 0;
}
输入为:2 2 -1 6 1 -2 4 3 5 7 1 28
即方程组为:
2x+2y- z=6
x-2y+4z=3
5x+7y+ z=28
其正确结果是:x=1,y=3,z=2