|
发表于 2020-12-24 11:00:46
|
显示全部楼层
// 输入一个数,查找在数组中是否有这个数,若有,这个数是数组中的第几个数,若没有则插入该数
- #include<stdio.h>
- int main()
- {
- void find(int a[], int b, int high, int low);
- int a[9] = { 8,9,12,18,23,34,56,78 };
- int b, high = 14, low = 0;
- printf("请输入要寻找的数:");
- scanf("%d", &b);
- find(a, b, high, low); // 用数组名作为函数的实参
- }
- void find(int a[], int b, int high, int low)
- {
- int i, n, mid;
- n = high;
- while (low <= high)
- {
- mid = (high - low) / 2 + low;
- if (b > a[mid])
- low = mid + 1;
- if (b < a[mid])
- high = mid - 1;
- if (b == a[mid])
- break; // 找到数后中断循环
- }
- if (b == a[mid])
- {
- printf("we have the %dst number is %d\n", mid, a[mid]);
- }
- else
- {
- for (i = n;i >= mid;i--)
- a[i + 1] = a[i];
- a[mid] = b;
- for (i = 0;i < 15;i++)
- printf("%d ", a[i]);
- printf("\n");
- }
- }
复制代码 |
|