0
点赞
收藏
分享

微信扫一扫

杨氏矩阵问题

杨氏矩阵:有一个数字矩阵,矩阵的每行从左到右是递增的, 矩阵的每列是递增的,编写程序在杨氏矩阵中,查找某个数字是否存在。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//杨氏矩阵:有一个数字矩阵,矩阵的每行从左到右是递增的,
//矩阵的每列是递增的,编写程序在杨氏矩阵中,查找某个数字是否存在。
int FindNum(int arr[3][3], int k, int* px, int* py)
{
	int x = 0;
	int y = *py - 1;
	while (x <= *px - 1 && y >= 0)
	{
		if (arr[x][y] > k)
		{
			y--;
		}
		else if (arr[x][y] < k)
		{
			x++;
		}
		else
		{
			*px = x;
			*py = y;
			return 1;
		}
	}
}
int main()
{
	int arr[3][3] = { {1,2,3},{4,5,6},{7,8,9} };
	int x = 3;
	int y = 3;
	int k = 7;
	int ret = FindNum(arr, k, &x, &y);
	if (ret == 1)
	{
		printf("找到了,下标是:%d %d\n", x, y);
	}
	else
	{
		printf("找不到\n");
	}
	return 0;
}

举报

相关推荐

0 条评论