找杨氏矩阵的数字

问题:

1.没写while循环

2.没想到把x,y添加进主函数里

//int is_panduan(int arr[4][5], int k, int hang, int lie)
//{
//	int x = 0;
//	int y = lie - 1;
//	while (x < hang && y < lie)
//	{
//		if (arr[x][y] > k)
//		{
//			y--;
//		}
//		else if (arr[x][y] < k)
//		{
//			x++;
//		}
//		else
//		{
//			return 1;
//		}
//	}
//	return 0;
//}
int is_panduan(int arr[4][5], int k, int* hang, int* lie)
{
	int x = 0;
	int y = *lie - 1;
	while (x < *hang && y < *lie)
	{
		if (arr[x][y] > k)
		{
			y--;
		}
		else if (arr[x][y] < k)
		{
			x++;
		}
		else
		{
			*hang = x;
			*lie = y;
			return 1;
		}
	}
	return 0;
}
int main()
{
	int arr[4][5] = { {1,2,3,4,5},{4,5,6,7,8},{5,6,7,8,9},{6,7,8,9,10} };
	int k = 3;
	int x = 4; 
	int y = 5;
	if (is_panduan(arr, k, &x, &y) == 1)
	{
		printf("y\n");
		printf("x=%d,y=%d", x, y);
	}
	else
	{
		printf("n\n");
	}
	return 0;
}

你可能感兴趣的:(算法,数据结构)