worldbuilder 发表于 2023-9-26 21:32:26

洛谷P1085求助

a = []
b = []
for i in range(1,8):
    a.append(list(map(int,input().split())))
k = 0
for j in a:
    k += 1
    if j+j>8:
      b.append(k)
if b == []:
    print(0)
else:
    b.sort(reverse=False)
    print(b,end='')
题目是:
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入格式
输入包括 7 行数据,分别表示周一到周日的日程安排。每行包括两个小于 10 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出格式
一个数字。如果不会不高兴则输出 0,如果会则输出最不高兴的是周几(用 1,2,3,4,5,6,7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。
问题:一共十二个检查点,第十一个检查点WA,但我看不出代码哪里错了,运行示例也没问题啊?

isdkz 发表于 2023-9-26 21:32:36

这个问题的代码看起来没有什么明显的错误,但是可能存在一些细节问题。建议检查以下几点:

1. 确保输入格式正确。题目要求每行输入两个小于10的非负整数,用空格隔开。如果输入格式不正确,可能会导致程序出错。

2. 确保输出格式正确。题目要求输出一个数字,如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1,2,3,4,5,6,7分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。如果输出格式不正确,可能会导致程序出错。

3. 确保算法正确。题目要求判断津津下周是否会不高兴,以及如果会,最不高兴的是周几。根据题目描述,如果一天上课超过8个小时,津津就会不高兴。因此,可以遍历每一天的上课时间,统计上课时间是否超过8小时,如果超过则记录下来。最后,如果有记录,则输出时间最靠前的一天。如果没有记录,输出0。

Mike_python小 发表于 2023-9-26 21:33:00

问题分析:

根据题目要求,津津一天上学和妈妈的安排总共不能超过8个小时,否则会不高兴。我们需要检查一周内哪一天津津最不高兴。

代码分析:

代码的逻辑是读取每天的课程时间,如果一天的上学时间加上妈妈的安排时间超过8个小时,就记录下该天是津津最不高兴的一天。

问题发现:

代码在判断一天的上学时间和妈妈的安排时间是否超过8小时时,使用的条件是if j+j>8,这是错误的。因为题目要求是一天超过8个小时就会不高兴,而不是上学时间和妈妈安排时间的总和超过8小时。

解决方案:

修改代码中的判断条件为if j + j > 8即可。

下面是修改后的代码:


a = []
b = []
for i in range(1, 8):
    a.append(list(map(int, input().split())))

k = 0
for j in a:
    k += 1
    if j + j > 8:# 修改判断条件
      b.append(k)

if b == []:
    print(0)
else:
    b.sort(reverse=False)
    print(b, end='')


希望以上解答对你有帮助!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}

worldbuilder 发表于 2023-9-26 21:53:26

不行啊{:5_96:}

liuhongrun2022 发表于 2023-9-27 06:43:20

你把数据下载不就知道了吗
页: [1]
查看完整版本: 洛谷P1085求助