You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用整数除法计算非负整数平均值的程序超时问题求助

问题分析与修正

你的代码超时的核心原因是循环内没有读取下一个输入,导致程序一直重复处理第一个输入值,陷入死循环。除此之外还有两处逻辑错误:

存在的问题

  • 死循环:while循环体内没有执行positiveinput=Get next input,永远不会获取新的输入,无法终止循环
  • 循环条件错误:题目要求统计非负整数(包括0),原代码positiveinput > 0会跳过0,不符合需求
  • 冗余计算:平均值在循环内反复计算完全没必要,应该在所有输入处理完成后再计算

修正后的代码

integer positiveinput
integer Avg
integer sumValues
integer numValues
integer maxValues

sumValues = 0
numValues = 0
maxValues = 0

positiveinput=Get next input
while positiveinput >= 0
  numValues = numValues + 1
  sumValues = sumValues + positiveinput
  if positiveinput > maxValues
    maxValues = positiveinput
  // 关键:循环内获取下一个输入,避免死循环
  positiveinput=Get next input

// 所有输入处理完后计算平均值
Avg = sumValues / numValues
Put Avg to output
Put " " to output
Put maxValues to output

说明

  1. 把获取下一个输入的语句移到循环内部,确保每次循环都能读取新值,遇到负数时退出循环
  2. 循环条件改为positiveinput >= 0,确保0被纳入统计
  3. 平均值计算放到循环结束后,只需要计算一次

内容的提问来源于stack exchange,提问作者Grace Fitz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:39:53