杨氏矩阵中的查找问题

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;
}


你可能感兴趣的:(杨氏矩阵中的查找问题)