夜深人静我学算法 2024-09-20 02:02 采纳率: 0%
浏览 29

请问为什么错?pta这个总过不去

题目是
有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。

读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530;0 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数

img

img


这个报错啥意思

我刚学c语言在这个地方卡了好久了,真心感谢你们!
我自己编译每次输时间运行出来都是对的啊!

  • 写回答

2条回答

  • 一轮明月照丘壑 2024-09-20 02:03
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你给出的描述和代码来看,我理解你在尝试编写一个程序,该程序接受两个输入:起始时间的四位数字表示和流逝的分钟数,然后计算并输出新的时间。

    我看到你的代码有一些问题,这可能是导致你在 PTA(一种在线编程练习平台)上提交失败的原因。我注意到你的代码有几个关键问题:

    1. 代码中有一些无法识别的字符,例如在第3行的"∫L"。这可能是编码问题或者是错误的输入。你需要删除或替换这些字符。
    2. 在计算总分钟数(第8行)时,你是将小时(c)乘以60然后加上剩余的分钟(d)再加上流逝的分钟(b)。但这里的问题是,你直接把小时当做分钟数了。实际上小时应该转换成分钟之后再相加。例如,如果当前时间是 1:47 且过了 66 分钟,正确的计算方式应该是让初始小时(小时应该是 4)先转为分钟数再累加剩余分钟和流逝的分钟数(总分钟数 = 初始小时数 * 60 + 当前分钟数 + 流逝分钟数)。但这种情况下你需要处理进位问题。如果总分钟数超过 60,你需要更新小时数和分钟数。这涉及到一些复杂的逻辑处理。
    3. 在计算新的时间时(第9-13行),你的逻辑有误。你试图将总分钟数直接转换为新的时间格式,但你没有正确处理进位问题。正确的做法应该是先将总分钟数转换为小时和分钟,然后输出新的时间格式。例如,如果总分钟数是 480 分钟(即 8 小时),那么应该将小时设为新的时间的小时部分,并将剩余的分钟设为新的时间的分钟部分。注意,小时如果小于 10 则不需要前导零。这是需要考虑的一个细节问题。因此你需要重新考虑你的逻辑处理。

    我建议你重新整理你的代码逻辑,确保正确处理进位问题并输出正确格式的时间。如果你需要进一步的帮助或示例代码,请告诉我。

    评论

报告相同问题?

问题事件

  • 修改了问题 9月20日
  • 创建了问题 9月20日