#include <stdio.h>
#define ROW 4
#define COL 4
int youngSearch(int * YOUNG, int search);
void main()
{
int young[][COL] = {{1,4,5,9},{3,7,8,10},{4,8,9,11},{6,9,11,13}};
int search;
printf("input the search num. \n");
scanf("%d",&search);
if(youngSearch(young, search))
printf("%d is in youngMatrix.",search);
else
printf("%d is not in youngMatrix.",search);
}
int youngSearch(int * YOUNG, int search)
{
int funROW = 0;
int funCOL = COL -1;
int i = 0;
int value = * ( YOUNG + funROW * ROW + funCOL);
for(;i<ROW+COL;i++)
{
if(search == value)
return 1;
else if((value > search) && (funCOL > 0))
value = * ( YOUNG + funROW * ROW + (--funCOL));
else if((value < search) && (funROW < ROW - 1))
value = * ( YOUNG + (++funROW) * ROW + funCOL);
else
return 0;
}
}