witam tym razem mam taki ciekawy probilem z ktorym nie wiem jak sobie poradzic [wstyd]
mianowice napisalem sobie programik w C obliczajacy wyznacznik macierzy... wszystko dziala i jest ok dopoki na glownej przekatnej nie pojawi sie zero... wtedy program sie wiesza bo korzystalem z eleiminacji Gaussa obliczajac wyznacznik
{
int i,j,k;
double pam,w;
for(k=0;k<m->wymiar-1;k++) {
for(i=k+1;i<m->wymiar;i++) {
pam=m->tab[i][k]/m->tab[k][k];
for(j=k;j<m->wymiar;j++) {
m->tab[i][j]= m->tab[i][j] - pam*m->tab[k][j];
}
}
}
w=1;
for(i=0;i<m->wymiar;i++) {
w=w*m->tab[i][i];
}
i jak widzicie jesli na glownej pzrekatnej jest 0 to program probuje wykonac dzielenie przez 0 [glowa]
sprawa jest niby prosta bo wystarczy zamienic miejscami wiesz w ktorym wystepuje 0 na miejscu tab[i][i] z wierszem w ktorym to zero nie wystepuje i zmienic znak wyznacznika tylko jak to zrobic?