求解n元一次方程组的C语言程序,简单点的,网上的太复杂了

2025-04-24 06:12:23
推荐回答(1个)
回答1:

# 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; j for(i=0; i scanf("%f", &a[j][i]); 
if(r printf("方程有无穷解\n"); 
if(r==n) 
{   
printf("方程有唯一解\n"); 
for(t=0; t for(m=0; m for(j=0; j if(j!=m)     
{  
float b= a[j][m]/a[m][m]; 
for(i=0; i a[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; j printf("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