1045:自定义函数之整数处理

一、原题

题目描述
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。
输入
10个整数
输出
整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)
样例输入
2 1 3 4 5 6 7 8 10 9
样例输出
1 2 3 4 5 6 7 8 9 10

二、解题代码

代码如下(示例):

def a1(): #输入
    a=list(map(int,input().split()))
    a2(a)
def a2(b): #排序
    m=n=0
    ma=mi=b[0]
    for i in range(1,len(b)):
        if b[i]>mi:
            mi=b[i]
            m=i
    b[m],b[9]=b[9],b[m]
    for i in range(1,len(b)):
        if b[i]<ma:
            ma=b[i]
            n=i
    b[n],b[0]=b[0],b[n]
    a3(b)
def a3(c): #输出
    for i in c:
        print(i,end=" ")
a1() #无參调用

2.解题思路

以下代码是找出列表中的最大值:

def a2(b): #排序
    m=n=0
    max=min=b[0]
    for i in range(1,len(b)):
        if b[i]>min:
            min=b[i]
            m=i
    b[m],b[9]=b[9],b[m]

样例输入
[2 1 3 4 5 6 7 8 10 9]
索引值:
(0 1 2 3 4 5 6 7 8 9)

首先将i=1带入
b[1]=1 小于 min=2 则不执行if语句
b[2]=3 大于 min=2 执行if语句后,min变成b[2]=3 m变成i=2

b[7]=8 大于 min=7 执行if语句后,min变成b[7]=8 m变成7
b[8]=10 大于 min=8 执行if语句后 ,min变成b[8]=10 m变成8
b[9]=9 小于 min=10 不执行if语句 ,循环结束。
b[8]和b[9]交换位置,使得最大的数放在最后的位置 。


以下代码是找出列表中的最小值:

    for i in range(1,len(b)):
        if b[i]<ma:
            ma=b[i]
            n=i
    b[n],b[0]=b[0],b[n]

思路同上

首先将i=1带入
b[1]=1 小于 max=2 执行if语句后,max变成b[1]=1 n贬称i=1。
b[2]=3 大于 max=2 则不执行if语句,接下来的循环也都不执行if语句。
直接进行最小值位置的转换。
b[1]和b[0]交换位置,使得最小的数放在最前的位置。
最后输出处理完毕后的数列。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值