天天看點

【C語言】二維數組中的查找,楊氏矩陣

//請完畢一個函數。輸入這種一個數組和一個數,推斷數組中是否包括這個數。

#include <stdio.h>

#define col 4

int yang(int arr[][col], int val)

{

int i=0;

int j = col - 1;

int tmp = arr[i][j]; //找到左上角的數

while (1)

if (tmp == val)

return 1;

}

else if (tmp<val && j>=0) //小于要找的數,在下一行尋找

tmp = arr[++i][j];

else if (tmp>val && j>=0) //大于要找的數,從該列向前找

tmp = arr[i][--j];

else

return 0;

int main()

int i, j;

int a;

int arr[4][col] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 19 };

printf("數組為:\n");

for (i = 0; i < 4; i++)

for (j = 0; j < 4; j++)

printf("%3d", arr[i][j]);

printf("\n");

printf("請輸入一個數:");

scanf_s("%d", &a);

if (yang(arr, a))

printf(" %d在該矩陣中\n", a);

printf(" %d不在該矩陣中\n", a);