Punteros a matrices

Hola! Estoy complicada definiendo una función en C que verifique si una matriz es identidad o no.Se tiene que es una matriz de 10x10, por favor, ayuda! ¿Cómo hacerlo?

1 respuesta

Respuesta
1
Hice una función, que te devuelve 1 si es identidad y 0 si no, checala:
#define TRUE 1
#define FALSE 0
int EsMatrizIdentidad(int M[][10], int n) {
int i, j;
//una matriz es identidad cuando para toda i=1..n y j=1..n donde i=j M(i,j)=1 y donde i!=j M(i,j)=0
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
if (i == j) {
if (M[j] != 1)
return FALSE; //no es matriz identidad
}
else {//i != j
if (M[j] != 0)
return FALSE; //no es matriz identidad
}
}
}
return TRUE;
}
se usaría de la siguiente manera:
int M[10][10] = { 1,0,0,0,0,0,0,0,0,0,
0,1,0,0,0,0,0,0,0,0,
0,0,1,0,0,0,0,0,0,0,
0,0,0,1,0,0,0,0,0,0,
0,0,0,0,1,0,0,0,0,0,
0,0,0,0,0,1,0,0,0,0,
0,0,0,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,1,0,
0,0,0,0,0,0,0,0,0,1 };
if (EsMatrizIdentidad(M, 10))
printf("Es matriz identidad");
else
printf("NO es matriz identidad");

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas