#include <iostream.h>
void vector_middle()
{
int flag = 1;
float a, a_left, a_middle, a_right, output, a_left_left, a_right_right;
cout << "请输入正整数/n";
cin >> a;
while(a)
{
if(flag == 1)
{
a_middle = a;
}
else if(flag == 2)
{
a_left = (a < a_middle ? a : a_middle);
a_right = (a > a_middle ? a : a_middle);
a_middle = (a_left + a_right) / 2;
}
else if(flag == 3)
{
if(a < a_left)
{
a_middle = a_left;
a_left = a;
a_right = a_right;
}
else if(a >= a_left && a < a_right)
{
a_left = a_left;
a_right = a_right;
a_middle = a;
}
else
{
a_left = a_left;
a_middle = a_right;
a_right = a;
}
}
else if(flag == 4)
{
if(a < a_left)
{
a_left_left = a;
a_right_right = a_right;
a_left = a_left;
a_right = a_middle;
a_middle = (a_left + a_right) / 2;
}
else if(a >= a_left && a < a_middle)
{
a_left_left = a_left;
a_right_right = a_right;
a_left = a;
a_right = a_middle;
a_middle = (a_left + a_right) / 2;
}
else if(a >= a_middle && a < a_right)
{
a_left_left = a_left;
a_right_right = a_right;
a_left = a_middle;
a_right = a;
a_middle = (a_left + a_right) / 2;
}
else if(a > a_right)
{
a_left_left = a_left;
a_right_right = a;
a_left = a_middle;
a_right = a_right;
a_middle = (a_left + a_right) / 2;
}
}
else
{
if(flag % 2 == 1)
{
if(a < a_left_left)
{
a_left_left = a;
a_left = a_left;
a_middle = a_left;
a_right = a_right;
a_right_right = a_right_right;
}
else if(a >= a_left_left && a < a_left)
{
a_left_left = a_left_left;
a_middle = a_left;
a_left = a;
a_right = a_right;
a_right_right = a_right_right;
}
else if(a >= a_left && a < a_right)
{
a_left_left = a_left_left;
a_left = a_left;
a_middle = a;
a_right = a_right;
a_right_right = a_right_right;
}
else if(a >= a_right && a < a_right_right)
{
a_left_left = a_left_left;
a_left = a_left;
a_middle = a_right;
a_right = a;
a_right_right = a;
}
else
{
a_left_left = a_left_left;
a_left = a_left;
a_middle = a_right;
a_right = a_right_right;
a_right_right = a;
}
}
else
{
if(a < a_left_left)
{
a_left_left = a_left_left;
a_left = a_left;
a_right_right = a_right;
a_right = a_middle;
a_middle = (a_left + a_right) / 2;
}
else if(a >= a_left_left && a < a_left)
{
a_left_left = a;
a_left = a_left;
a_right_right = a_right;
a_right = a_middle;
a_middle = (a_left + a_right) / 2;
}
else if(a >= a_left && a < a_middle)
{
a_left_left = a_left;
a_right_right = a_right;
a_left = a;
a_right = a_middle;
a_middle = (a_left + a_right) / 2;
}
else if(a >= a_middle && a < a_right)
{
a_left_left = a_left;
a_right_right = a_right;
a_left = a_middle;
a_right = a;
a_middle = (a_left + a_right) / 2;
}
else if(a >= a_right && a < a_right_right)
{
a_left_left = a_left;
a_right_right = a;
a_left = a_middle;
a_right = a_right;
a_middle = (a_left + a_right) / 2;
}
else
{
a_left_left = a_left;
a_right_right = a_right_right;
a_left = a_middle;
a_right = a_right;
a_middle = (a_left + a_right) / 2;
}
}
}
output = a_middle;
cout << "输出为: " << output << endl;
flag++;
cout << "请输入正整数/n";
cin >> a;
}
}
/*
int main(int argc, char *argv[])
{
vector_middle();
return 0;
}
*/