7-2 武林盟主 ,7-3 数组循环移位,7-4 又一个往返跑方阵 7-8 输出成绩信息

目录

7-2 武林盟主 (10 分)

输入格式:

输出格式:

输入样例:

输出样例:

7-3 数组循环移位 (10 分)

输入格式:

输出格式:

输入样例:

输出样例:

7-4 又一个往返跑方阵 (10 分)

输入格式:

输出格式:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

7-8 输出成绩信息 (10 分)

输入格式:

输出格式:

输入样例:

输出样例:


7-2 武林盟主 (10 分)

在传说中的江湖中,各大帮派要选武林盟主了,如果龙飞能得到超过一半的帮派的支持就可以当选,而每个帮派的结果又是由该帮派帮众投票产生的,如果某个帮派超过一半的帮众支持龙飞,则他将赢得该帮派的支持。现在给出每个帮派的帮众人数,请问龙飞至少需要赢得多少人的支持才可能当选武林盟主?

输入格式:

测试数据有多组,处理到文件尾。每组测试先输入一个整数n(1≤n≤20),表示帮派数,然后输入n个正整数,表示每个帮派的帮众人数ai​(0<ai​≤100)。

输出格式:

对于每组数据输出一行,表示龙飞当选武林盟主至少需要赢得支持的帮众人数。

输入样例:

3 5 7 5
4 6 6 7 5

输出样例:

6
11
import math
while True:
    try:
        xlist=list(map(int,input().split()))
        n=xlist[0]
        xlist.remove(xlist[0])
        minsum =0 
        nums =int(n/2)+1
        for i in range(0,nums):
            mins=min(xlist)
            if mins%2==0:
                minsum +=mins/2+1
            else:
                minsum +=math.ceil(mins/2)
            xlist.remove(mins)
        print("%d"%minsum)
    except:
        break

7-3 数组循环移位 (10 分)

输入两个整数n和m,再输入n个整数构成一个数列,把前m个数循环移位到数列的右边。

输入格式:

测试数据有多组,处理到文件尾。每组测试数据第一行输入2个正整数n、m(1<=m,n<100),第二行输入n个整数。

输出格式:

对于每组测试数据, 在一行上输出把前m个数循环移位到数列的右边后的数列,每两个数据之间留一个空格。

输入样例:

5 3
1 2 3 4 5

输出样例:

4 5 1 2 3
import math
while True:
    try:
        n,m=input().split()
        n=int(n)
        m=int(m)
        xlist=list(map(int,input().split()))
        clist=xlist[m:]+xlist[0:m]
        print(*clist)
    
    except:
        break

7-4 又一个往返跑方阵 (10 分)

所谓“往返跑方阵”,是指对任意给定的n,将1到n×n的整数依次填写到n×n的方阵中,从右下角第1个格子开始,向上填充;到最上面一行后,再向左一列,改变方向,向下填充;倒底后,往左移动一列,改变方向,向上填充;.…… 以此类推,直到将n×n的方阵填满。本题要求构造这样的“往返跑方阵”。

输入格式:

输入一个正整数n(1⩽n⩽10 )

输出格式:

输出n×n的往返跑方阵。每行n个数字,每个数字占3位,右对齐。

输入样例1:

在这里给出一组输入。例如:

3

输出样例1:

在这里给出相应的输出。例如:

  9  4  3
  8  5  2
  7  6  1

输入样例2:

在这里给出一组输入。例如:

5

输出样例2:

在这里给出相应的输出。例如:

 25 16 15  6  5
 24 17 14  7  4
 23 18 13  8  3
 22 19 12  9  2
 21 20 11 10  1
n = int(input())

i = j = n-1
list1 = [[] for i in range(n)]
num = 1
while True:
    while i >= 0:
        list1[i].insert(0, num)
        num += 1
        i -= 1
    i = 0
    j -= 1
    if j < 0:
        break
    while i < n:
        list1[i].insert(0, num)
        num += 1
        i += 1
    i = n - 1
    j -= 1
    if j < 0:
        break
for i in range(n):
    for j in range(n):
        if j == n-1:
            # print('{:>2d}')
            print("%3d" % list1[i][j])
        else:
            print("%3d" % list1[i][j], end='')

7-8 输出成绩信息 (10 分)

输入学生的学号、姓名、性别、三门课程成绩,以“#”结束,其中学号、姓名和性别为字符串,成绩可以是整数或浮点数。

按学号顺序输出学生的学号、姓名、性别和平均成绩,以空格隔开。

并依次列出每门课程的平均成绩、最高成绩、最低成绩、不及格人数。

若只输入“#”,则输出“没有学生信息!”

提示:其中平均成绩保留两位小数,如成绩为x,则以int(x*100)/100的形式输出

输入格式:

每一行输入一个学生的学号、姓名、性别和三门课程成绩,最后一行输入“#”

输出格式:

按学号顺序输出学生的学号、姓名、性别和平均成绩,以空格隔开。一行表示一个学生

然后输出一个空行

输出每门课程的平均成绩、最高成绩、最低成绩、不及格人数。一行表示一门课程

输入样例:

在这里给出一组输入。例如:

abc10 ccc 男 100 50 90
aaca01 aaa 女 90 90 90
bcd1002 bbb 男 80 86 89
1004 ddd 女 59 45 98
#

输出样例:

在这里给出相应的输出。例如:

1004 ddd 女 67.33
aaca01 aaa 女 90.0
abc10 ccc 男 80.0
bcd1002 bbb 男 85.0

82.25 100 59 1
67.75 90 45 2
91.75 98 89 0
xuhao=[]
name=[]
sex=[]
score1=[]
score2=[]
score3=[]
allscore=[]
num,fail1,fail2,fail3=0,0,0,0
a=input().split()
if a[0]=='#':
    print('没有学生信息!',end='')
try:
    while(a[0]!='#'):
          if float(a[3])<60:
              fail1+=1
          if float(a[4])<60:
              fail2+=1
          if float(a[5])<60:
              fail3+=1          
          xuhao.append(a[0])
          name.append(a[1])
          sex.append(a[2])
          score1.append(float(a[3]))
          score2.append(float(a[4]))
          score3.append(float(a[5]))
          allscore.append(int((float(a[3])+float(a[4])+float(a[5]))/3*100)/100)
          a=input().split()
          num+=1
    lis=[[] for i in range(num)]
    for i in range(num):
        lis[i].append(xuhao[i])
        lis[i].append(name[i])
        lis[i].append(sex[i])
        lis[i].append(allscore[i])
    lis.sort(key=lambda item:item[0])
    for i in range(num):
        for j in range(4):  
            print(lis[i][j],end='')
            if j<3:
                print(end=' ')
        print()
    print()
    
    if int(max(score1))==max(score1):
        print('{} {} {} {}'.format(int(sum(score1)/num*100)/100,int(max(score1)),int(min(score1)),fail1))
    else:
        print('{} {} {} {}'.format(int(sum(score1)/num*100)/100,max(score1),min(score1),fail1))
    
    if int(max(score2))==max(score2):
        print('{} {} {} {}'.format(int(sum(score2)/num*100)/100,int(max(score2)),int(min(score2)),fail2))
    else:
        print('{} {} {} {}'.format(int(sum(score2)/num*100)/100,max(score2),min(score2),fail2))
   
    if int(max(score3))==max(score3):
        print('{} {} {} {}'.format(int(sum(score3)/num*100)/100,int(max(score3)),int(min(score3)),fail3),end='')
    else:
        print('{} {} {} {}'.format(int(sum(score3)/num*100)/100,max(score3),min(score3),fail3),end='')
except:
    pass

猜你喜欢

转载自blog.csdn.net/yuwoxinanA3/article/details/124028541
7-8
7-3
7-2