lukasz.proszek.info

Powrót do listy plików

pivot.c

#include "pivotgauss.h"

void pivot(typ **tablica, typ **wynik, int n_wiers, int n_kolu, int ktora_kolumna )
{
        typ *wiersz_temp = NULL;
  typ b_temp;
        int i, j, k, wiersz;
        typ max=0;
  
        //allokacja wiersza potrzebnego do zamiany
        if( (wiersz_temp = (typ *) calloc (n_kolu,sizeof(typ))) == NULL) {
                printf("\nNieudane przydzielenie pamieci\n");
                abort();
        }
        else   {
                printf("\nPoprawnie przydzielilem pamiec na wiersz_temp");
        }

  for(i=ktora_kolumna;i<n_kolu;i++){ // schodzimy wierszami w dół
     if(abs(tablica[i][ktora_kolumna])>max) { //jeżeli element większy na abs od naszego maxa
        max=abs(tablica[i][ktora_kolumna]); //to wstawiamy go za maxa
        wiersz=i; //i notujemy numer wiersza.
     }
  }

  /* teraz dokonamy zamiany wierszy */

  for(i=0;i<n_kolu;i++){
     wiersz_temp[i]=tablica[ktora_kolumna][i];
     tablica[ktora_kolumna][i]=tablica[wiersz][i];
     tablica[wiersz][i]=wiersz_temp[i];
  }

  /* i wektora wyników */

  b_temp=wynik[ktora_kolumna][0];
  wynik[ktora_kolumna][0]=wynik[wiersz][0];
  wynik[wiersz][0]=b_temp;
     
  
        printf("\nSortuje macierz wg. %d kolumny\n", (ktora_kolumna+1));


  for(i=0;i<n_wiers;i++){
     for(j=0;j<n_kolu;j++){
        printf("%f\t",tablica[i][j]);
     }
     printf("\t%f\n",wynik[i][0] );
  }
  
        //dealokacja wiersza
        free(wiersz_temp);  
//  free(b_temp);
}




syntax highlighted by Code2HTML, v. 0.9.1
kod przerobiony z HTML na XHTML za pomocą HTML Tidy for Linux/x86