任意输入数字,输出中位数

#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;

}

*/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值