|
5鱼币
题目描述:
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。
样例输入:
2 1 3 4 5 6 7 8 10 9
样例输出:
1 2 3 4 5 6 7 8 9 10
解法二错误50%但是没找到原因,求解
解法一:找出列表中最小值和最大值,然后遍历列表,值等于最小值就与首位交换,最大值同理,oj正确,代码如下:
- list=list(map(int,input().split())) #输入10个数,转化为列表
- a=min(list)
- b=max(list)
- for i in range(len(list)):
- if list[i] == a:
- list[i]=list[0]
- list[0]=a
- elif list[i]==b:
- list[i]=list[len(list)-1]
- list[len(list)-1]=b
- else:
- pass
- for i in list:
- print(i,end=' ')
复制代码
解法二:找出列表中最小值的位置序号,然后直接和列表首位交换,最大值同理,oj错误50%,代码如下:
- lis=list(map(int,input().strip().split()))
- minindex=lis.index(min(lis))
- manindex=lis.index(max(lis))
- lis[minindex],lis[0]=lis[0],lis[minindex]
- lis[manindex],lis[-1]=lis[-1],lis[manindex]
- for i in lis:
- print(i,end=' ')
-
复制代码 |
|