Programación en lenguaje C del principio de Pigeon Cage
#include
rango nulo(int *a)
{
inti,j,k,p ,n=0;
if(*(a)<*(a+1)&&*(a+1)<*(a+2)&&*(a+2)<*(a +3)&&*(a+3)<*(a+4))
{
printf("Orden ascendente más largo: %d,%d,%d,% d,%d\n",*(a),*(a+1),*(a+2),*(a+3),*(a+4));
n =1;//Juzga que los 5 números han formado el orden ascendente y descendente más largo
}
else{
for(i=0;i< 2;i++ )
{
para(j=i+1;j<3;j++)
{
para( k=j +1;k<4;k++)
{
for(p=k+1;p<5;p++)
{
si(*(a+i)<*(a+j)&&*(a+j)<*(a+k)&&*(a+k)<*(a+p))
{
printf("Secuencia ascendente más larga: %d,%d,%d,%d\n",*(a+i),*(a+j) ,* (a+k),*(a+p));
n=1;//Fija un número a la vez y encuentra el orden ascendente más largo de los cuatro números
}
}
}
}
}
}
si(n= =0)
{
para(i=0;i<3;i++)
{
para (j=i +1;j<4;j++) //Fija un número cada vez y encuentra el orden ascendente más largo de los tres números
{
for(k=j +1;k< 5
;k++)
{
if(*(a+i)<*(a+j)&&*(a+j)<*(a+k)) p>
printf("La secuencia ascendente más larga: %d,%d,%d\n",*(a+i),*(a+j),*(a+k)); >
}
}
}
}
si(*(a)>*(a+1) && *(a+1)>*(a+2)&&*(a+2)>*(a+3)&&*(a+3)>*(a+4))
{
printf("La secuencia descendente más larga:%d,%d,%d,%d,%d\n",*(a),*(a+1),*(a +2 ),*(a+3),*(a+4));
n=1;
}
más{
para(i=0;i<2;i++)
{
para(j=i+1;j<3;j++)
{
para(k=j+1;k<4;k++)
{
para(p=k+1;p<5 ;p++ )
{
if(*(a+i)>*(a+j)&&*(a+j)>*(a+k)&&*( a+ k)>*(a+p))
printf("La secuencia descendente más larga: %d,%d,%d,%d\n",*(a+i), *(a +j),*(a+k),*(a+p));
n=1;}
}
}
}
}
si(n==0)
para(i=0;i<3;i++)
{
para(j=i+1;j<4;j++)
{
para(k=j+1 ;k< 5;k++)
{
if(*(a+i)>*(a+j)&&*(a+j)>*(a+k ))
{
printf("La secuencia descendente más larga:%d,%d,%d\n",*(a+i),*(a+j),*(a+k));
}
}
}
}
}
void main()
{
ints[5],i;
printf("Ingrese 5 números\n");
for(i=0;i< 5; i++)
scanf("%d",&s[i]);
rango(s);
}