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
Materiały z Metod Numerycznych udostępnione zostały na zasadach licencji GPL w wersji 2.