#define ROW 4 #define COL 4 #include<stdio.h> #include<stdlib.h> int Yang(int arr[ROW][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 a[ROW][COL] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; int i = 0; int j = 0; int num; printf("数组为:\n"); for (i = 0; i<ROW; i++) { for (j = 0; j < COL; j++);//从右上角开始往下一列完了后再向左一列,从第一行向下查找 { printf("%5d", a[i][j]); } printf("\n"); } printf("Please Enter:"); scanf("%d", &num); if (Yang(a, num)) { printf("%d在该数组中\n", num); } else { printf("%d不在该数组中\n", num); } system("pause"); return 0; }
下一个:redis持久化概述