萌新C语言初学者 2021-07-20 22:37 采纳率: 20%
浏览 44
已采纳

n 个串列资料,串列资料开头为一整数 m ,此 m 值表示有几个整数。再将资料由小到大排列取中间值

请实作一程式,此程式可以不断地要求使用者输入一组资料,每一组资料一开头代表接下来要输入 n 个串列资料,当所输入的 n 小于等于 0 时则程式结束。每个串列资料一开头为一整数 m ,此 m 值代表接下来有几个整数。当每组资料输入后,求出每个串列资料中的中间值,最后并把每个串列资料的中间值由小到大排序并输出。
在此注意到的是,在取中间值部分,假设输入的资料数目为N,当N为奇数时,则中间值为将输入资料由小到大排列取第(N+1)/2 个数字,若N为偶数时,则中间值为将输入资料由小到大排列取第N/2 个数字。

举例:当有3笔资料,分别为 6 2 5时
将此3笔资料排序的结果为2 5 6,又因(3+1)/2 = 2,因此取排列好的第2个数字,即5
举例:当有4笔资料,分别为 6 2 5 1时
将此4笔资料排序的结果为1 2 5 6,又因4/2 = 2,因此取排列好的第2个数字,即2
输入资料:
2
5 1 5 7 9 10
4 6 8 9 11
2
5 8 10 11 12 14
5 1 3 5 7 9
0
输出结果:
7 8
5 11
  • 写回答

2条回答 默认 最新

  • Feng-licong 2021-07-20 23:44
    关注
    import math
    while True:
        m = int(input())
        if m == 0:
            break
        result = []
        for i in range(m):
            listN = list(map(int, input().split(" ")))
            listN = sorted(listN[1:])
            result.append(listN[math.ceil(len(listN)/2-1)])
        print(" ".join(map(str,sorted(result))))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已采纳回答 7月20日
  • 创建了问题 7月20日

悬赏问题

  • ¥50 这Mac系统提示虚拟内存不足,怎么解决
  • ¥15 Rs232电路无法收发数据,求帮助
  • ¥15 百度cookie扫码登录器
  • ¥15 微机原理汇编语言debug调试实验
  • ¥23 matlab可以把相图转换为庞加莱映射吗
  • ¥15 Arduino电机和openmv连接异常
  • ¥15 Arcgis河网分级报错
  • ¥200 java+appium2.1+idea
  • ¥20 请帮我做一个EXE的去重TXT文本
  • ¥15 工价表引用工艺路线,应如何制作py和xml文件