|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
-
|