马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Jet_Shawn 于 2020-4-27 10:43 编辑
笔者的目标是想要求一个数组的中位数
# include <iostream>
using namespace std;
int findMiddle();
int main()
{
// 初始化一个奇数数组
int num1[5] = {1,2,3,4,5};
// 初始化一个偶数数组
int num2[6] = {1,2,3,4,5,6};
float middle_num1;
float middle_num2;
middle_num1 = findMiddle(num1,5);
middle_num2 = findMiddle(num2,6);
cout<<"中位数分别为"<<middle_num1<<","<<middle_num2<<endl;
system("pause");
return 0;
}
float findMiddle(int num,int length)
{
float middle_num;
int half = length / 2;
if (length%2 == 1)
{
middle_num = num[half]; // 注意下标
}
else
{
middle_num = (num[half]+num[half-1]) / 2.0;//这里两个数的下标应该是half和half-1
}
return middle_num;
}
1、函数返回值改为float,
2、数组长度为偶数的时候,两个数的下标应该是half和half-1
3、两数之均值计算的时候,因为两数都是int所以应该出2.0,将之转为float float findMiddle(int *num,int length)
{
float middle_num;
int half = length / 2;
if (length%2 == 1)
{
middle_num = num[half]; // 注意下标
}
else
{
middle_num = (num[half]+num[half-1]) / 2.0;//这里两个数的下标应该是half和half-1
}
return middle_num;
}
|