2014-12-03 75 views
0

我的代碼爲所有值返回零,我不知道爲什麼。我應該使用高斯 - 喬丹消除來解決。有沒有人有什麼建議?高斯 - 喬丹消除只返回零

#include <stdio.h> 
#define N 10 
int main() 
{ 
double a[N][N+1]={{3.55618, 5.87317, 7.84934, 5.6951, 3.84642, 9.15038, -1.68539, 5.03067, 7.63384, -1.75626}, 
{-4.82893, 8.38177, -0.301221, 5.10182, -4.1169, -6.09145, -3.95675, -2.33365, 1.3969, 6.54555}, 
{-7.64196, 5.66605, 3.20481, 1.55619, -1.19814, 9.79288, 5.35547, 5.86109, 4.95544, -9.35749}, 
{-2.95914, -9.16958, 7.3216, 2.39876, -8.1302, -7.55135, -2.37718, 7.29694, 5.9867, 8.5401}, 
{-8.42043, -0.369407, -5.4102, -8.00545, 9.22153, 3.96454, 5.38499, 0.438365, 0.419677, 4.17166}, 
{6.02952, 4.57728, 5.46424, 3.52915, -1.01135, -3.74686, 8.14264, -8.86961, -2.88114, 1.29821}, 
{0.519819, -6.16655, 1.13216, 2.75811, -1.05975, 4.20286, -3.45764, 0.763558, -0.281287, -9.76168}, 
{5.15737, -9.67481, 9.29904, -3.93334, 9.12785, -4.25208, -6.1652, 2.5375, 0.139195, 2.00106}, 
{-4.30784, 1.40711, -6.97966, -9.29715, 5.17234, 2.42634, 1.88818, -2.05526, -3.7679, 3.3708}, 
{-4.65418, 7.18118, 6.51338, 3.13249, 0.188456, -16.85599, 7.21435, -2.93417, 1.06061, 1.10807}}; 
double pivot,d; 
int i,j,k; 
for(k=0; k<N; k++) 
{ 
    pivot=a[k][k]; 
    for(j=k; j<N+1; j++) 
     a[k][j]=a[k][j]/pivot; 
    for(i=0; i<N; i++) 
    { 
     if(i != k) 
     { 
      d=a[i][k]; 
      for(j=k; j<N+1; j++) a[i][j]=a[i][j]-d*a[k][j]; 
     } 
    } 
} 
for(i=0; i<N; i++) 
    printf("x[%d]=%lf\n", i+1, a[i][N]); 
return 0; 
} 

回答

1

你輸入數組的大小爲[10][11]的,但你的輸入值大小[10][10]的。因此,您最右邊的列滿了零,這意味着輸出將全部爲零。

0
Try this :- (N in place of N+1) :-) 

double a[N][N]={{3.55618, 5.87317, 7.84934, 5.6951, 3.84642, 9.15038, -1.68539,   
        5.03067, 7.63384, -1.75626}, 
        {-4.82893, 8.38177, -0.301221, 5.10182, -4.1169, -6.09145, -3.95675,  
        -2.33365, 1.3969, 6.54555}, 
        {-7.64196, 5.66605, 3.20481, 1.55619, -1.19814, 9.79288, 5.35547, 
        5.86109, 4.95544, -9.35749}, 
        {-2.95914, -9.16958, 7.3216, 2.39876, -8.1302, -7.55135, -2.37718,   
        7.29694, 5.9867, 8.5401}, 
        {-8.42043, -0.369407, -5.4102, -8.00545, 9.22153, 3.96454, 5.38499, 
        0.438365, 0.419677, 4.17166}, 
        {6.02952, 4.57728, 5.46424, 3.52915, -1.01135, -3.74686, 8.14264,  
        -8.86961, -2.88114, 1.29821}, 
        {0.519819, -6.16655, 1.13216, 2.75811, -1.05975, 4.20286, -3.45764, 
        0.763558, -0.281287, -9.76168}, 
        {5.15737, -9.67481, 9.29904, -3.93334, 9.12785, -4.25208, -6.1652,  
        2.5375, 0.139195, 2.00106}, 
        {-4.30784, 1.40711, -6.97966, -9.29715, 5.17234, 2.42634, 1.88818,   
        -2.05526, -3.7679, 3.3708}, 
        {-4.65418, 7.18118, 6.51338, 3.13249, 0.188456, -16.85599, 7.21435, 
        -2.93417, 1.06061, 1.10807}};