【发布时间】:2019-04-24 13:52:45
【问题描述】:
我是新来的。我正在尝试回答以下问题。
- 编写一个程序,生成一个包含 20 个介于 1 和 100 之间的随机数的列表。 (a) 打印清单。 (b) 打印列表中元素的平均值。 (c) 打印列表中的最大值和最小值。 (d) 打印列表中第二大和第二小的条目 (e) 打印列表中有多少个偶数。
我的问题是问题(c)
v=[...]
maxx=v[0]
for i in range(0,len(v)-1):
if maxx<v[i]:
maxx=v[i]
print(maxx)
我知道这个算法可以解决我的问题。但是我想了解我的 max 函数有什么问题
import random
v=[]
sum=0
avg=0
maxx=0
minn=0
def generate(v):
for i in range(0,20):
x=random.randint(1,100)
v.append(x)
return v
print(generate(v))
def soma(sum):
for k in range(0,len(v)):
sum=sum+v[k]
return sum
def average(avg):
avg=soma(sum)/20
return avg
print(average(avg))
def maxx(maxx):
maxx=v[0]
for i in range(0,len(v)-1):
if v[i+1]>v[i]:
maxx=v[i+1]
else:
maxx=v[i]
return maxx
print(maxx(maxx))
I expect the function to generate the maximum number in the list and not the last number as it is happening.
import random
v=[]
sum=0
avg=0
maxx=0
minn=0
def generate(v):
for i in range(0,20):
x=random.randint(1,100)
v.append(x)
return v
print(generate(v))
def soma(sum):
for k in range(0,len(v)):
sum=sum+v[k]
return sum
def average(avg):
avg=soma(sum)/20
return avg
print(average(avg))
def maxx(maxx):
maxx=v[0]
for i in range(0,len(v)-1):
if v[i+1]>v[i]:
maxx=v[i+1]
else:
maxx=v[i]
return maxx
print(maxx(maxx))
【问题讨论】:
-
我不明白这个问题。什么是输入,什么是期望输出与实际输出?
-
对不起,我把 cood 发了两次。我想知道我的 maxx 函数有什么问题。它不返回最大值,而是返回数组中的最后一个值
-
if v[i+1]>v[i]– 每个元素都应与当前最大值进行比较,而不是与之前的元素进行比较。 -
但是例如对于 i =0 如果 v[1]>v[0] 最大值应该是 v[1] 否则是 v[0]。为什么我不能这样做
-
maxx=v[0]还会覆盖您传递给函数的任何参数。
标签: python python-3.x