2017-10-12 33 views
0

我想确定有多少次数值超过了先前的输入。下面的代码适用于1,7,9,0(两次7,超过1,9超过7),但在1,5,2,4,3,0上失败。我得到的,这是因为我的最大为5,​​课程2和4都小于5。我想不出该怎么做“复位”最大回1重置一个while循环内的最大值

a = int(input()) 
counter = 0 
highest = 1 
while a != 0: 
    if a > highest: 
     highest = a 
     counter += 1 
    a=int(input()) 

# need to reset highest to next input of 'a' 
print(counter) 

感谢您的耐心。还有一位老先生看我是否已经脑死亡了。对不起,如果这是一个愚蠢的问题,我只是没有看到它。另外,当然我下面,我不能使用任何亲密,但如果,否则,而没有列表或任何

+0

您的预期产出是多少?什么“失败”?听起来对我很好。 –

+0

对于第一个例子,代码应该返回2,因为7高于1并且9高于7.第二个例子返回1,仅计数高于1的五个:因为maximum设置为5,事实上4是不计算高于2。我正在寻找一种方法,在计算第一个实例后最大值被重置,这样4将被识别为高于2,并且返回的计数为2而不是1 – user1478335

+0

确定通过插入elif子句来解决:elif a <最高:最高= a,将较低的值重置为新的最大值。我相信有一个更好(更聪明)的方式来做到这一点 – user1478335

回答

0
first_num = int(input()) 
incremental_count = 0 
while first_numv != 0: 
    second_num = int(input()) 
    if second_num != 0 and first_num < second_num: 
     incremental_count += 1 
    first_num = second_num 
print(incremental_count) 

一旦我解决了我的路,这是给出的答案是更聪明,更简单!

相关问题