左图是程序运行出来是m=3 右边是我想的步骤和算出来的答案为m=1 感觉没毛病啊 算不出正确答案 不知道哪一步出了差错
下次发代码发代码发代码发代码~~!!
手敲很累很累很累很累下次不发不答了!
问题的关键就是搞清楚第一个循环之后s的值
以及第二个循环中m的含义
代码如下:
a = [50,75,53,92,77,64,79,21]
s = [0] * 10
for i in range(len(a)) :
k = a[i] //10
s[k] = s[k]+1
m = s[0]
k = 1
# print(s) ### s =[0, 0, 1, 0, 0, 2, 1, 3, 0, 1]
# print(m) ### m = 0
while k <10 :
if s[k] > m :
m = s[k]
k +=1 ### 等价于遍历s, m 为s中的最大值
print('m=',m) ### 所以m = 3
你纸上的步骤没有写完啊,s[2]满足之后,while循环还在继续啊,后面还会继续判断的,你咋就结束了呢,哈哈,不能够哈 男人不能这么快就结束的哦
这个程序的意图是输出数组中高位最多的那个是出现了几次,7出现了3次最多,所以是3
第一次循环之后的s
0 0 1 0 0 2 1 3 0 1
然后求出最大值
3
结果是 3,不是1,答案错了吧
能把代码通过文字的形式贴出来嘛,容易复制