吉祥物设计网站医院网站建设策划书
[题目描述]
 输入 n 个整数,按照绝对值从大到小排序后输出。保证所有整数的绝对值不同。
输入格式:
 输入数据有多组,每组占一行,每行的第一个数字为 n ,接着是 n 个整数, n=0 表示输入数据的结束,不做处理。
输出格式:
 对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。
样例输入
 3 3 -4 2
 4 0 1 2 -3
 0
样例输出
 -4 3 2
-3 2 1 0
数据范围
 对于 100% 的数据,保证 1≤n≤100 。
来源/分类(难度系数:一星)
完整代码展示:
 # coding=utf-8
 a=[]
 while True:
        b=list(map(int,input().split()))
        if b==[0]:
              break
       else:
              b.remove(b[0])
              a.append(b)
c=0
 while c<len(a):
        d=a[c]
        e=d[:]
        for i in range(0,len(e)):
             e[i]=abs(e[i])
       e.sort(reverse=True)
       f=[]                                                                                for j in range(0,len(e)):
            for k in range(0,len(d)):
                  if d[k]==e[j] or d[k]==-e[j]:
                        if d[k] not in f:
                             f.append(d[k])                                      sum=""
       for l in range(0,len(f)):
             sum+="{} ".format(f[l])
       print(sum)                                                                  c+=1
代码解释:
 “a=[] ”,建立一个空列表a。
 “while True:
          b=list(map(int,input().split()))
          if b==[0]:
                break
         else:
                b.remove(b[0])
                a.append(b)                        ”,让用户循环输入一串每两个数字之间插入一个空格的数组,并将其储存进列表b中。接着判断b是否为[0],如果是,则令循环条件不存在,跳出整个while循环;否则b移除元素b[0]后将其添加进a中。
 “c=0
  while c<len(a):
         d=a[c]
         e=d[:]
         for i in range(0,len(e)):
               e[i]=abs(e[i])
         e.sort(reverse=True)
         f=[]
         for j in range(0,len(e)):
              for k in range(0,len(d)):
                    if d[k]==e[j] or d[k]==-e[j]:
                          if d[k] not in f:
                                f.append(d[k])
        sum=""
        for l in range(0,len(f)):
              sum+="{} ".format(f[l])
        print(sum)
        c+=1                                                  ”,令循环密码子为c,并将其初始值设为0。当c<len(a)时,令d=a[c],并将列表d复制赋给e。依次遍历列表e中所有元素,并将原元素替换为原元素的绝对值。遍历结束后,对e进行升序排序。建立一个空列表f,遍历列表e和d,查找e中是否有d中相同或相反的元素,如果有且该元素不在列表f中,则将其添加进列表f。建立空字符sum,依次遍历列表f中所有元素,并将其用sum一一连接起来,遍历结束后,打印sum。每循环一次,就令c+1,直至c==len(a),跳出整个while循环。
运行效果展示:

 
(声明:以上内容均为原创)
