Half Sum Element编程问题求助:代码运行无输出
问题排查:Half Sum Element程序无输出
核心问题分析
你的程序没有输出的直接原因是重复读取输入导致程序阻塞:
- 第一个
for i in range(0, n):循环读取了n个整数,但未做任何存储或处理,直接消耗了所有输入内容。 - 第二个循环再次尝试读取n个整数,此时输入流已空,程序会一直等待用户输入,因此没有任何输出。
此外还有一处逻辑错误:当满足条件时,你输出的是所有数的总和sum_numbers,但题目要求输出的是那个等于其余数之和的目标数(即最大值max_num)。
修正后的代码
n = int(input()) numbers = [] sum_total = 0 max_num = -float('inf') # 仅读取一次输入,同时完成存储、求和、找最大值 for _ in range(n): num = int(input()) numbers.append(num) sum_total += num if num > max_num: max_num = num rest_sum = sum_total - max_num if max_num == rest_sum: print("Yes") print(f"Sum= {max_num}") else: print("No") print(f"Diff= {abs(max_num - rest_sum)}")
修正说明
- 避免重复读取输入:用列表存储所有输入的数值,仅通过一次循环完成数据读取、总和计算和最大值查找。
- 修正输出逻辑:当满足条件时,输出目标数
max_num而非总和,符合题目要求。 - 简化逻辑:提前计算其余数的和
rest_sum,让条件判断和差值计算更直观。
内容的提问来源于stack exchange,提问作者dstv
相关产品推荐
相关产品推荐

