1. 程式人生 > >楊氏矩陣中的查詢問題

楊氏矩陣中的查詢問題

9oj編號1384。

1,太不細心了:行列不分!!與或不分!!

2,邊界值要想清楚。

3,申請完記憶體要釋放。

4,scanf來替代cin

5,整型陣列的scanf也得有&

#include<iostream>
#include<cstdio>
using namespace std;

int main()
{
	int row_num, col_num, value;
	int index_row, index_col;
	int flag;
	
	while(scanf("%d %d",&row_num,&col_num) != EOF)
	{
		if(row_num<1 || col_num <1 || col_num >1000 || row_num >1000)
			return 0;

		scanf("%d",&value);
		if(value<1 || value>1000000)
			return 0;

		flag = 0;
		int *m = new int[row_num*col_num];
		for(int i=0;i<row_num;i++)
			for(int j=0;j<col_num;j++)
				//cin>>m[i*col_num+j];
				scanf("%d",&m[i*col_num+j]);

		index_row = 0;
		index_col = col_num-1;
		while((index_row<row_num) && (index_col>=0))
		{
			if(m[index_row*col_num+index_col] == value)
			{
				flag = 1;
				break;
			}
			else if(value > m[index_row*col_num+index_col] )
				index_row++;
			else
				index_col--;
		}

		if(flag)
			printf("Yes\n");
		else
			printf("No\n");

		delete[] m;
		m = NULL;
	
	}
	

	return 1;
}