代码自取:
运用了很基础的手法写,运行没错误
#includeusing namespace std; int main() { int arr[10]; int i = 0; int length = sizeof(arr) / sizeof(arr[0]); for( i=0;i > arr[i]; cout << "原数组等于:" << endl; for (i = 0; i < length; i++) cout << arr[i] << " "; cout << endl; for (int i = 0; i < length - 1; i++) { for (int j = 0; j < length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int t = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = t; } } } cout << "从小排列到大的数组等于:" << endl; for (i = 0; i < length; i++) cout << arr[i] << " "; cout << endl; int k; cin >> k; int left=0; int right=length-1; while (left <= right) { int mid = (left + right) / 2; if (arr[mid] < k) { left = mid + 1;//要后半部分 } else if (arr[mid] > k) { right = mid - 1;//要前半部分 } else { cout << "数组找到这个数了,下标是: " << mid; break; } } if (left > right) { cout << "数组中找不到这个数"; } return 0; }



