题目描述
班上有n个同学。现在同学们排成了一队,每个同学都想知道在自己前面有多少个同学比自己高。现在告诉你班上同学们排好队后每个同学的身高,请告诉每个人在他们前面有多少人比他们高。
输入:
输入共两行。
第一行一个整数n。
第二行n个整数表示排好队后每个人的身高。
输出:
输出共一行。
每行n个整数表示每个人前面有多少人比他高。
样例输入1
5
4 2 3 5 1
样例输出1
0 1 1 0 4
来源/分类(难度系数:一星)
一维数组
完整代码展示:
a=int(input())
b=list(map(int,input().split()))
c=0
d=[]
while c<len(b):
sum=0
for i in range(0,c):
if b[i]>b[c]:
sum+=1
d.append(sum)
c+=1
for j in range(0,len(d)):
print(d[j],end=" ")
代码解释:
“a=int(input()) ”,让用户输入总人数a。
“b=list(map(int,input().split())) ”,让用户依次输入每个人的身高,并将其储存在列表b中。
“c=0
d=[]
while c<len(b):
sum=0
for i in range(0,c):
if b[i]>b[c]:
sum+=1
d.append(sum)
c+=1 ”,令循环密码子为c,建立一个空列表d,当c<len(b)时:设sum为b[c]前面比b[c]大的数的数量,初始值为0,遍历b[0]到b[c-1]的元素,每查找到一个,sum+1。遍立结束后,将sum添加进d中。每循环一次,就令c+1,直至c==len(b),跳出整个while循环。
“for j in range(0,len(d)):
print(d[j],end=" " ”,打印d中元素,每两个元素之间插入一个空格。
运行效果展示:
(声明:以上内容均为原创)