[c] Programa que indica Relaciones

Iniciado por audiogalaxy., 8 Abril 2013, 07:12 AM

0 Miembros y 1 Visitante están viendo este tema.

audiogalaxy.

Intentando ser lo más puntual posible estoy haciendo un programa que me diga el tipo de relaciones:

Ya tengo el código para todo, sólo me falta definir el tipo de relación transitiva:

que va así

Si aRb y bRc  Entonces aRc


Lo codifiqué así:

for (i=1;i<=n;i++){
    for (j=1;j<=n;j++){
        if (a[i][j]==at[i][j] || at[i][j]==ax[i][j])
        aux5++;
}


Pero así no funciona

¿Alguna idea de cómo ponerlo?
Qué sería de dios sin el Hombre.

audiogalaxy.

Aquí pongo el código completo pero la parte de arriba es puntualmente lo que está mál definido.

Código (c_mac) [Seleccionar]
#include<conio.h>
#include<string.h>
#include<stdio.h>
main ()
{
//clr();
printf("Programa para identificar el tipo de relaci¢n\n\n");
int a[9][9], at[9][9], ax[9][9];
int b,i,j,k,n;
printf("¨Cu ntos elementos tiene en tu conjunto tu relaci¢n?:");
scanf("%d",&n);
for (i=1;i<=n;i++)
{
    for (j=1;j<=n;j++)
    {
        a[i][j]=0;
        at[i][j]=0;
        ax[i][j]=0;
    }
}
printf("Dale 1 si existe la pareja ordenada, 0 si no existe:\n");
for (i=1;i<=n;i++)
{
    for (j=1;j<=n;j++)
    {
        printf("La pareja (%d,%d)",i,j);
        //printf(i," , ");
        //printf(j,"): ");
        scanf("%d",&b);
        a[i][j]=b;
        at[i][j]=b;
        ax[i][j]=b;
       
    }
}
int aux5=0;
for (i=1;i<=n;i++){
    for (j=1;j<=n;j++){
        if (a[i][j]==at[i][j] || at[i][j]==ax[i][j])
        aux5++;
}
}
int aux=0;
for (k=1;k<=n;k++)
{
  if (a[k][k]==1)
    aux++; 
}
int aux2=0;
for (k=1;k<=n;k++)
{
    if (a[k][k]==0)
    aux2++;
}
int aux1=0;

for (i=1;i<=n;i++)
{
    for (j=1;j<=n;j++)
    {
        if (a[i][j]==at[i][j])
        aux1++;
    }
}
int aux3=0;

for (i=1;i<=n;i++)
{
    for (j=1;j<=n;j++)
    {
        if (a[i][j]!=at[i][j])
        aux3++;
    }
}
int aux4=1;

for (i=1;i<=n;i++)
{
    for (j=1;j<=n;j++)
    {
        if (a[i][j]<=at[j][i])
        aux4++;
    }
}



if (aux2==n)
{
printf(" La relaci¢n es Irreflexiva\n");
}
if (aux==n)
{
printf(" La relaci¢n es Reflexiva\n");
}
if (aux1==n*n)
{
printf(" La relaci¢n es Sim,trica\n");
}
if (aux3==n*n)
{
printf(" La relaci¢n es Asim,trica\n");
}
if (aux4==n*n)
{
printf(" La relaci¢n es Antisim,trica\n");
}
if (aux5==n*n)
{
printf(" La relaci¢n es Transitiva\n");
}
else
{
printf(" La relaci¢n NO es Transitiva\n");
}
if ((aux==n) && (aux1==n*n) && (aux5==n*n))
{
printf(" La relaci¢n es Equivalente\n");
}
getch ();
return 0;
}
Qué sería de dios sin el Hombre.