VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 177|回复: 4

[已解决]求教两道C++题,谢谢!

[复制链接]
41_avatar_middle
最佳答案
0 
在线会员 发表于 2020-2-25 16:27:55 | 显示全部楼层 |阅读模式
6驿站币
1、编写函数 int* func_sort_ascend(int* p, int n, float& mid),其中p是长度为n的数组的指针(n>0)
函数目标:将p指向的数组按照升序排列,返回排序后的新数组指针,并将数组的中位数通过形参mid返回

2、编写函数 float& func_sort_descend(int* p, int n , int *q),是长度为n的数组的指针(n>0)
函数目标:将p指向的数组按照降序排列,返回数组的中位数的引用,并将排序后的新数组通过形参q返回
最佳答案
92_avatar_small
2020-2-25 16:27:56
我来交个作业,哈哈!

  1. int* func_sort_ascend(int* p, int n, float& mid)
  2. {
  3.         for (int i = 0; i < n - 1; ++i)
  4.         {
  5.                 for (int j = 0; j < n - 1 - i; ++j)
  6.                 {
  7.                         if (p[j] > p[j + 1])
  8.                         {
  9.                                 int m = p[j];
  10.                                 p[j] = p[j + 1];
  11.                                 p[j + 1] = m;
  12.                         }
  13.                 }
  14.         }

  15.         if (n % 2 == 0)
  16.         {
  17.                 int idx = n / 2;
  18.                 mid = (p[idx] + p[idx - 1]) / 2;
  19.         }
  20.         else
  21.         {
  22.                 int idx = n / 2;
  23.                 mid = p[idx];
  24.         }

  25.         return p;
  26. }
复制代码


第二题貌似有点问题,返回中位数的引用,如果 n 是偶数的话,中位数就是数组 p 中两个数的平均值,这时候没办法返回引用啊?

最佳答案

查看完整内容

我来交个作业,哈哈! 第二题貌似有点问题,返回中位数的引用,如果 n 是偶数的话,中位数就是数组 p 中两个数的平均值,这时候没办法返回引用啊?




上一篇:关于CoInitializeEx的疑问
下一篇:遍历出的文件名为什么不能输出
92_avatar_middle
最佳答案
9 
在线会员 发表于 2020-2-25 16:27:56 | 显示全部楼层    本楼为最佳答案   
bestAnswer
我来交个作业,哈哈!

  1. int* func_sort_ascend(int* p, int n, float& mid)
  2. {
  3.         for (int i = 0; i < n - 1; ++i)
  4.         {
  5.                 for (int j = 0; j < n - 1 - i; ++j)
  6.                 {
  7.                         if (p[j] > p[j + 1])
  8.                         {
  9.                                 int m = p[j];
  10.                                 p[j] = p[j + 1];
  11.                                 p[j + 1] = m;
  12.                         }
  13.                 }
  14.         }

  15.         if (n % 2 == 0)
  16.         {
  17.                 int idx = n / 2;
  18.                 mid = (p[idx] + p[idx - 1]) / 2;
  19.         }
  20.         else
  21.         {
  22.                 int idx = n / 2;
  23.                 mid = p[idx];
  24.         }

  25.         return p;
  26. }
复制代码


第二题貌似有点问题,返回中位数的引用,如果 n 是偶数的话,中位数就是数组 p 中两个数的平均值,这时候没办法返回引用啊?

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small thzzl + 2 + 2 很给力!

查看全部评分

41_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-2-25 16:35:09 | 显示全部楼层
大哥们,有没有能帮小弟一把的。
53_avatar_middle
最佳答案
0 
在线会员 发表于 2020-2-25 18:43:15 | 显示全部楼层
BreakPoint 发表于 2020-2-25 17:06
我来交个作业,哈哈!

还有个问题,第二题的返回值应该是p还是别的
23_avatar_middle
最佳答案
2 
在线会员 发表于 2020-2-26 17:52:38 | 显示全部楼层
BreakPoint 发表于 2020-2-25 17:06
我来交个作业,哈哈!


我觉得第一题的形参mid定义成 float *mid,而第二题则可以用 float &mid,更符合题意要求
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-7-9 16:22

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表