Exemple #1
0
float wyznacznik(int n, float macierz[n][n])
{
	int i, j, k, znak;
	float det[n][n], suma;
	suma = 0;
	znak = 1;
	if (n == 1)
	return macierz[0][0];
	else if (n > 1) {

		/* przygotowywanie macierzy (det) z wycietym ostatnim wierszem i i-ta kolumna*/

		for (i = n - 1; i >= 0; i = i - 1) {
			for (j = 0; j < n - 1; j = j + 1) {
				for (k = 0; k < i; k = k + 1) {
					det[j][k] = macierz[j][k];
				}
				for (k = i; k < n - 1; k = k + 1) {
					det[j][k] = macierz[j][k + 1];
				}
			}

			/* dodawanie do sumy kolejnych skladnikow (wyznacznikow macierzy det) */

			suma =
			 suma + znak * macierz[n - 1][i] * wyznacznik(n - 1, det);
			znak = -znak;
		}

	}
	return suma;
}
Exemple #2
0
int main(){
int i,j,n;
printf("Podaj wymiar macierzy: ");
scanf("%d",&n);
while(n<1){
	printf("Podaj wymiar macierzy: ");
	scanf("%d",&n);
}
float matrix[n][n];
for(i=0;i<n;i++){
	printf("Podaj %d wiersz macierzy: ",i+1);
	for(j=0;j<n;j++){
		scanf("%f",&matrix[i][j]);
	}
}

for(i=0;i<n;i++){
	printf("|");
	for(j=0;j<n;j++){
		printf(" %f ",matrix[i][j]);
	}
	printf("|\n");
}


printf("\nWyznacznik wynosi: %f\n",wyznacznik(n,matrix));

}
Exemple #3
0
int main()
{
    wczytaj_wymiar_macierzy(n);
    float macierz[n][n];
    wczytaj_macierz(n, macierz);

    printf("%f", wyznacznik(n, macierz)); 
    printf("\n");

    return EXIT_SUCCESS;
}
Exemple #4
0
float wyznacznik(int n,float matrix[n][n]){

float m[n-1][n-1];
float suma=0;
int i,j,k,w=1;
if(n==1) return matrix[0][0];
else{
	for(i=n-1;i>=0;i--){
		for(j=0;j<n-1;j++){
			for(k=0;k<i;k++) m[j][k]=matrix[j][k];
			for(k=i;k<n-1;k++) m[j][k]=matrix[j][k+1];
		}
	suma=suma+w*matrix[n-1][i]*wyznacznik(n-1,m);
	w=(-1)*w;
	}
return suma;
}
}
/*
 * Maciej Malecki
 * [email protected]
 */
float wyznacznik (int n, float macierz[n][n]) {
     int i,j,k,znak;
     float det[n][n],suma;
     suma=0;
     znak=1;
     if (n==1) return macierz[0][0];
     else if (n>1){
          for (i=n-1; i>=0; i=i-1) {
               for (j=0; j<n-1; j=j+1) {
                    for (k=0; k<i; k=k+1) {det[j][k]=macierz[j][k];}
                       for (k=i; k<n-1; k=k+1) {det[j][k]=macierz[j][k+1];}
               }
               suma = suma + znak*macierz[n-1][i]*wyznacznik(n-1, det);
               znak=-znak;
          }
     }
     return suma;
}