有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define N 3
#define M 3
int seek_mat(int(*p)[M],int a )
{
int num = 0;
for (int i = 0; i < N; i++)
{
if (*(*(p + i)+M-1) >= a)
{
num = i;
break;
}
}
for (int j = 0; j < M; j++)
{
if (*(*(p + num)+j) == a)
return 1;
}
return 0;
}
int main()
{
int arr[N][M] = { 0 },num = 0;
for (int i = 0; i < N; i++)//请输入M*N的矩阵
for (int j = 0; j < M; j++)
scanf("%d", &arr[i][j]);
scanf("%d", &num);//请输入想要查找的数字
if (seek_mat(arr, num) != 0)
printf("找到了");
else
printf("没有找到");
return 0;
}