Hola gente! Estoy haciendo un ejercicio que me pide determinar si una matriz cuadrada es triangular inferior, superior o ninguna de las dos. Realicé el siguiente código en C++:
El problema es que no me está haciendo la parte de verificar si es triangular pero no veo el error. Espero que me puedan ayudar.
Muchas gracias!
Código [Seleccionar]
#include <stdio.h>
#include <iostream>
int leer_matriz(int M[][100],int &cf);
int definir_triangular(int M[][100],int cf);
int imprimir(int M[][100],int cf);
main ()
{
int M[100][100];
int cant_filas;
leer_matriz(M,cant_filas);
definir_triangular(M,cant_filas);
imprimir(M,cant_filas);
printf ("\n");
system ("pause");
}
int leer_matriz(int M[][100],int &cf)
{
do
{
printf ("Ingrese la cantidad de filas de la matriz: ");
scanf ("%d", &cf);
printf ("\n");
} while (cf>100);
for (int i=0;i<cf;i++)
{
for (int j=0;j<cf;j++)
{
printf ("Ingrese el elemento %d %d de la matriz: ", i, j);
scanf ("%d", &M[i][j]);
printf ("\n");
}
}
}
int definir_triangular(int M[][100],int cf)
{
int trian_inf=0, trian_sup=0;
int i=1, j=0;
while (i<cf)
{
while ((j<i)||(trian_inf=0))
{
if (M[i][j]==0)
j++;
else
trian_inf=1;
}
i++;
}
int f=0, c=1;
while (f<cf)
{
while ((c<cf)||(trian_sup=0))
{
if (M[f][c]==0)
c++;
else
trian_sup=1;
}
f++;
}
if (trian_inf==0)
printf ("La matriz es triangular inferior.\n\n");
if (trian_sup==0)
printf ("La matriz es triangular superior.\n\n");
if ((trian_inf==1)&&(trian_sup==1))
printf ("La matriz no es triangular inferior ni superior.\n\n");
}
int imprimir(int M[][100],int cf)
{
for (int i=0;i<cf;i++)
{
for (int j=0;j<cf;j++)
{
printf (" %d ", M[i][j]);
}
printf ("\n");
}
}
El problema es que no me está haciendo la parte de verificar si es triangular pero no veo el error. Espero que me puedan ayudar.
Muchas gracias!