解题思路:
新建列表接受输入流,交换最大值与最后一个数,交换最小值与第一个数。以空格为间依次输出
注意事项:
首先参照错误代码:
a = list(input().split()) ''' 此处新建的列表为str类型a:['2', '1', '3', '4', '5', '6', '7', '8', '10', '9'] ''' for i in range(10): ''' 此处可用for i in a:直接读取列表元素,不必掉用range()函数迭代 ''' if a[i] == max(a): ''' if()语句多余,调用a.index()函数足以获取元素位置 ''' a[a.index(max(a))] = a[len(a) - 1] ''' 交换元素可合并为一行 ''' a[len(a) - 1] = a[i] if a[i] == min(a): a[a.index(min(a))] = a[0] a[0] = a[i] for i in range(10): print(a[i], end=' ')
参考代码:
a = list(map(int, input().split())) a[a.index(max(a))], a[len(a) - 1] = a[len(a) - 1], max(a) a[a.index(min(a))], a[0] = a[0], min(a) for i in a: print(i, end=" ")
代码所用函数详解:
input():获取标准输入"2 1 3 4 5 6 7 8 10 9"
split():以默认空字符对输入的字符串进行切片"'2', '1', '3', '4', '5', '6', '7', '8', '10', '9'"
map():会根据提供的函数对指定序列做映射。此处及对str型输入做强制类型转化为int
max(a):获取a列表最大元素的值
min(a):获取a列表最大元素的值
index():获取元素在列表中第一次出现的位置
0.0分
2 人评分
简单的a+b (C语言代码)浏览:685 |
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1492 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:368 |
本人酷爱递归实现很多问题,这里也是浏览:632 |
C语言训练-求s=a+aa+aaa+aaaa+aa...a的值 (C语言代码)浏览:760 |
校门外的树 (C语言代码)浏览:733 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:524 |
C二级辅导-等差数列 (C语言代码)浏览:891 |
1197求助浏览:667 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:852 |