2016-07-17 46 views
-4

在高斯消元法假設矩陣的第一值,A [0] [0] = 0在高斯約旦方法交換行

然後我怎樣才能交換矩陣「A」的第1行與第2行,所以我得到正確的結果?

+0

爲什麼你不交換它們呢? –

回答

-1

保持來自相同類型的臨時值;由值 交換值, 例如:

temp=a[i][j]; 
a[i][j]=a[i+1][j]; 
a[i+1][j]=temp; 
-1

假設simpel 2D陣列構建的方式,如下所示:只是交換的行。

#include <stdio.h> 
#include <stdlib.h> 

#define S_MATRIX_DIM 5 

int main() 
{ 

    int **A; 
    int *tmp; 
    int i, j, entry; 

    entry = 0; 
    A = malloc(S_MATRIX_DIM * sizeof(int *)); 
    for (i = 0; i < S_MATRIX_DIM; i++) { 
    A[i] = malloc(S_MATRIX_DIM * sizeof(int)); 
    for (j = 0; j < S_MATRIX_DIM; j++) { 
     A[i][j] = entry++; 
    } 
    } 

    puts("Matrix A ="); 
    for (i = 0; i < S_MATRIX_DIM; i++) { 
    for (j = 0; j < S_MATRIX_DIM; j++) { 
     printf("%d,", A[i][j]); 
    } 
    putchar('\n'); 
    } 

    tmp = A[0]; 
    A[0] = A[1]; 
    A[1] = tmp; 

    puts("Matrix A, row exchanged ="); 
    for (i = 0; i < S_MATRIX_DIM; i++) { 
    for (j = 0; j < S_MATRIX_DIM; j++) { 
     printf("%d,", A[i][j]); 
    } 
    putchar('\n'); 
    } 

    for (i = 0; i < S_MATRIX_DIM; i++) { 
    free(A[i]); 
    } 
    free(A); 

    exit(EXIT_SUCCESS); 
}