#include<iostream>
#include<stdlib.h>
using namespace std;
#define MaxNumber 100
int *Number = new int[MaxNumber];
int length;
void found(int data[], int number, int a, int b) {
if (number > data[b] || number < data[a]) {
cout << "-------------------------" << endl;
cout << "数组里没有这数字" << endl;
}
else {
int x = 0;
x = a + (number - Number[a])*(b-a)/(Number[b]-Number[a]);
if (Number[x] > number) {
found(data, number, a, x - 1);
}
if (Number[x] < number) {
found(data, number, x+1, b);
}
if (Number[x] == number) {
cout << "-------------------------" << endl;
cout << "已找到,在第" << x + 1 << "位" << endl;
}
}
}
void sort(int data[], int a) {
int num = 0;
for (int i = 0; i < a; i++)
{
for (int j = i+1; j < a; j++)
{
if (Number[i] > Number[j]) {
num = Number[i];
Number[i] = Number[j];
Number[j] = num;
}
}
}
}
int main() {
cout << "输入数组长度:";
cin >> length;
cout << endl;
cout << "输入数组:";
for (int i = 0; i < length; i++)
{
cin >> Number[i];
}
cout << endl;
cout << "-------------------------" << endl;
cout << " 数组录入完毕 " << endl;
cout << "-------------------------" << endl;
sort(Number, length);
cout << "数组为:";
for (int i = 0; i < length; i++)
{
cout << Number[i]<<" ";
}
cout << endl;
int work = true;
while (work) {
cout << "输入要查询的数字:";
int number = 0;
cin >> number;
found(Number, number, 0, length - 1);
cout << "-------------------------" << endl;
cout << "是否继续,是输入1,否输入其他:";
int c = 0;
cin >> c;
if (c == 1) {
work = true;
}
else {
work = false;
}
}
}