Dev - C++ - Necesito ayuda con matrices en Dev c++

 
Vista:

Necesito ayuda con matrices en Dev c++

Publicado por Extremefail (1 intervención) el 28/08/2012 23:45:27
Bueno necesito ayuda si alguien me puede explicar como buscar posiciones de dos numeros en una matriz de mat[4][4] bueno ya hice la maayoria pero hay una combinacion par asi llamarlo que dice: Dispersos= que los dos numeros esten dentro de la matriz pero no en las posiciones que voy a mostrar
Necesito que me expliquen como hacerlo:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define fil 4
#define col 4

int main ()
{
int mat[fil][col], x, y, n1, n2;
int band=0;

for(x=0;x<fil;x++)
{
for(y=0;y<col;y++)
{
printf("introduzca un numero: ");
scanf("%d",&mat[x][y]);
}
}
for(x=0;x<fil;x++)
{
for(y=0;y<col;y++)
{
printf("\nEl valor es %d y se encuentra en la posicion [%d,%d]",mat[x][y],x,y);
}
}
printf("\n");
for(x=0;x<fil;x++)
{
for(y=0;y<col;y++)
{
printf(" %d\t ", mat[x][y]);

}
printf("\n");
}


printf("\nintroduzca el valor de n1: ");
scanf("%d",&n1);
printf("introduzca el valor de n2: ");
scanf("%d",&n2);


//Horizontal
for(x=0;x<fil;x++)
{
for(y=0;y<col-1;y++)
{
if(mat[x][y]==n1)
{
if(mat[x][y+1]==n2)
{
printf("\n[(%d,%d):(%d,%d)]-Horizontal",…
}
}
}
}
//Horizontal inversa
for(x=0;x<fil;x++)
{
for(y=0;y<col-1;y++)
{
if(mat[x][y]==n2)
{
if(mat[x][y+1]==n1)
{
printf("\n[(%d,%d):(%d,%d)]-Horizontal inversa",x,y+1,x,y);
}
}
}
}
//Vertical
for(x=0;x<fil;x++)
{
for(y=0;y<col-1;y++)
{
if(mat[x][y]==n1)
{
if(mat[x+1][y]==n2)
{
printf("\n[(%d,%d):(%d,%d)]-Vertical",x,…
}
}
}
}
//Vertical Inversa
for(x=0;x<fil;x++)
{
for(y=0;y<col-1;y++)
{
if(mat[x][y]==n2)
{
if(mat[x+1][y]==n1)
{
printf("\n[(%d,%d):(%d,%d)]-Vertical Inversa",x+1,y,x,y);
}
}
}
}
//Diagonal Descendiente
for(x=0;x<fil;x++)
{
for(y=0;y<col-1;y++)
{
if(mat[x][y]==n1)
{
if(mat[x+1][y+1]==n2)
{
printf("\n[(%d,%d):(%d,%d)]-Diagonal Descendiente",x,y,x+1,y+1);
}
}
}
}
//Diagonal Descendiente Inversa
for(x=0;x<fil;x++)
{
for(y=0;y<col-1;y++)
{
if(mat[x][y]==n2)
{
if(mat[x+1][y+1]==n1)
{
printf("\n[(%d,%d):(%d,%d)]-Diagonal Descendiente Inversa",x+1,y+1,x,y);
}
}
}
}
//Diagonal Ascendente
for(x=0;x<fil;x++)
{
for(y=0;y<col-1;y++)
{
if(mat[x+1][y]==n1)
{
if(mat[x][y+1]==n2)
{
printf("\n[(%d,%d):(%d,%d)]-Diagonal Ascendente",x+1,y,x,y+1);
}
}
}
}
//Diagonal Ascendente Inversa
for(x=0;x<fil;x++)
{
for(y=0;y<col-1;y++)
{
if(mat[x+1][y]==n2)
{
if(mat[x][y+1]==n1)
{
printf("\n[(%d,%d):(%d,%d)]-Diagonal Ascendente Inversa",x,y+1,x+1,y);
}
}
}
}
necesito que me digan como hacer esa combinacion por favor ando trancado, PD: si se muestra otra esta no se muestra(dispersos), solo se mostrara si ninguna de las que puse no se ejecuten
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder