需求:利用二分查找,查找数组中是否有用户输入的数字。
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> //这里的arr[]实际上是一个指针 int ayue(int arr[],int a,int p) { int left = 0; int right = p - 1; while (left<=right) { int i = (right+left) / 2;//中间元素的下标 if(arr[i] > a) { right = i-1; } else if(arr[i] < a) { left = i+1; } else { return i; } } return -1; } int main() { int ret = 0; int a = 0; int arr[] = {1,2,3,4,5,6,7,8,9}; int p = sizeof(arr) / sizeof(arr[0]); printf("请输入你的数字:"); scanf("%d", &a); //实际上这里传过去的arr是数组首元素的地址。 ret = ayue(arr, a, p); if (ret == -1) { printf("你输入的数字不在数组里。\n"); } else { printf("你输入的数字在数组里,下标是%d\n",ret); } return 0; }
标签:arr,return,19,代码,练习,ret,else,int,printf From: https://www.cnblogs.com/ayue6/p/17743476.html