为什么没报错运行不出来,检测是没有什么问题的,但是输出不出来内容
循环里你要重新计算mid啊
while(left <= right)
{
mid = (left + right)/2;
....
}
将search的函数定义修改下,修改为int serch(int *arr,int k,int sz);
函数定义中没有形式参数定义为 int arr[]这种类型的说法。因此是类型定义错误。
#include<iostream>
using namespace std;
void print_arr(int* arr, int len);
void mp(int* arr, int len);
/*冒泡排序函数*/
void mp(int * arr,int len)
{
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - 1 - i; j++)
{
/*如果j>j+1的值,交换数据*/
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
/*输出函数*/
void print_arr(int* arr, int len)
{
for (int i = 0; i < len; i++)
{
cout << arr[i] << endl;
}
}
int main()
{
/* 1.创建一个数组 */
int arr[11] = { 1,8,5,60,9,11,13,84,16,89,10};
int len = sizeof(arr) / sizeof(arr[0]);
/* 1.创建一个函数,实现冒泡排序 */
mp(arr, len);
/* 1.打印排序后的数组 */
print_arr(arr, len);
return 0;
}