|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目描述
光明正大担任了理科数学分析的课程助教,期中模拟考试后,需要帮助老师分析处理n个学生的成绩,涉及以下四种操作: 1.查询第x个学生的成绩; 2.查询前x个学生中最高的成绩; 3.在所有学生后新加入一名同学的成绩x; 4.删除第x个同学的成绩; 5.查询是否存在成绩为x的同学。 由于老师非常关心同学们的成绩情况,向助教询问了很多次成绩情况,然而光明正大还需要为同学们答疑,于是他找到了你,希望你能帮忙设计一个成绩管理系统以回复老师的查询。
输入
第一行包含若干个不超过100的正整数,依次表示学生们的初始成绩,以空格分隔。 后面若干行,每行输入两个数字,空格分隔,依次为操作标识opt,具体操作x: 若opt=1,第二个数字x表示查询当前序列中第x个同学的成绩; 若opt=2,第二个数字x表示查询前x个学生中最高的成绩; 若opt=3,第二个数字x表示在所有学生后加入一名同学成绩为x; 若opt=4,第二个数字x表示删除第x个同学的成绩; 若opt=5,第二个数字x表示查询是否存在成绩为x的同学; 最后一行,包括两个数字,空格分隔,第一个数字为操作标识opt,为-1,第二个数字x没有其他含义,表示老师操作结束,应该终止程序。 输入保证合法。
输出
对于每个opt=1,输出一行一个正整数,表示当前序列中第x个同学的成绩; 对于每个opt=2,输出一行一个正整数,表示前x个学生中最高的成绩; 对于每个opt=3或opt=4,不需要输出; 对于每个opt=5,输出一行一个数,1代表存在成绩为x的同学,0代表不存在。
输入样例1
95 80 90 100
1 2
2 3
4 2
5 80
-1 -1
输出样例1
80
95
0
输入样例2
59 60 58 99 98
2 5
3 100
2 6
5 100
1 3
-1 -1
输出样例2
99
100
1
58
样例解释
第一行输入代表一共有四个同学的成绩,分别是95,80,90,100。 第二行输入“1 2”代表第一种操作,查询第二个同学的成绩,则输出80。 第三行输入“2 3”代表第二种操作,查询前三个同学中最高的成绩,则输出95。 第四行输入“4 2”代表第四种操作,删除第二个同学的成绩,故无输出。 第五行输入“5 80”代表第五种操作,查询成绩为80的同学是否存在,因其在上一次操作中已经被删除,故输出0。 第六行输入的第一个数字为终止符“-1”,故程序结束。
lis=list(map(int,input().split()))
opt,x=map(int,input().split())
ans[]
while opt>0 and opt<6:
if opt==1:
a=int(lis[x-1])
ans.append(a)
elif opt==2:
b=max(lis[:x-1])
ans.append(b)
elif opt==3:
lis.append(x)
elif opt==4:
lis.remove(x-1)
elif opt==5:
if x in lis:
ans.append("1")
else:
ans.append("0")
for i in ans:
print(i)
本帖最后由 jackz007 于 2022-10-24 18:20 编辑
- d = list(map(int,input().split()))
- while True:
- opt , x = map(int,input().split())
- if opt > 0 and opt < 6:
- if opt == 1 :
- print(d[x - 1])
- elif opt == 2 :
- print(max(d[: x]))
- elif opt == 3 :
- d . append(x)
- elif opt == 4 :
- d . pop(x - 1)
- elif opt == 5:
- if x in d:
- print(1)
- else :
- print(0)
- elif opt == -1 : break
- else : print('无效的操作,请你重新输入。\n')
复制代码
|
|