您的位置:首页 > 其它

二维数组中的查找,杨氏矩阵

2015-11-04 18:51 344 查看



#include<stdio.h>
#include<stdlib.h>
int find(int arry[100][100], int x, int y, int key)
{
int i = 0;
int j = 0;
for (i = 0; i<x; i++)
{
for (j = 0; j<y; j++)
{
if (key == arry[i][j])
return 1;

}
}
return -1;
}
int main()
{
int arr[100][100];
int m, n;
int ret;int k;
printf("输入要查询的数:");
scanf_s("%d", &k);
printf("输入行和列:");
scanf_s("%d%d", &m, &n);
printf("输入%d行%d列的数:\n",m,n);
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
scanf_s("%d", &arr[i][j]);
}
}
ret = find(arr, m, n, k);
if (ret == 1)
printf("存在!");
else
printf("不存在!");

system("pause");
return 0;
}


2.
#include <stdio.h>

#define COLS 3
#define ROWS 3

int find_num(int arr[COLS][ROWS], int key, int cols, int rows)
{
if (cols > 0 && rows > 0)
{
int col = 0;
int row = rows - 1;
while ((col < cols) && (row >= 0))
{
if (arr[col][row] < key)
{
col++;
}
else if (arr[col][row] == key)
{
return 1;
}
else
{
row--;
}
}
return 0;
}
return -1;
}
int main()
{
int arr[COLS][ROWS];
int i = 0;
int j = 0;
int key = 0;
for (i = 0; i < COLS; i++)
{
for (j = 0; j < ROWS; j++)
{
arr[i][j] = i*ROWS + j;
}
}
scanf("%d", &key);
int ret = find_num(arr, key, COLS, ROWS);
if (ret == 1)
{
printf("exist\n");
}
else
{
printf("not exist\n");
}
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  include