zoukankan      html  css  js  c++  java
  • 利用类计算学生成绩和排序

    描述:

     有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课成绩) 
    样例输入:
    2 
    1 blue 90 80 70 
    b clan 80 70 60
    样例输出:
    85 75 65 1 blue 90 80 70 

    分析:

    这一题我主要卡在: 
    1. 对python类使用不熟悉;
    2. 不知道怎么把多个student加入列表和怎么遍历student 

    代码:

    class Student:    #定义学生类
         def inputs(self,number,name,score):
             self.number=number
             self.name=name
             self.a=int(score[0])
             self.b=int(score[1])
             self.c=int(score[2])
    
    #将创建的学生类append列表中
    stulis=[]
    n=int(input())
    for i in range(n):
        st=Student()
        s=list(input().split())
        st.inputs(s[0],s[1],s[2:])
        stulis.append(st)
    
    #求每种成绩的总分
    sum1=[0]*3
    for i in stulis:
        sum1[0]+=i.a
        sum1[1]+=i.b
        sum1[2]+=i.c
    
    #找最高分学生
    m=stulis[0].a+stulis[0].b+stulis[0].c
    index=0
    for i in range(n):
        if stulis[i].a+stulis[i].b+stulis[i].c>m:
            m=stulis[i].a+stulis[i].b+stulis[i].c
            index=i
    
    #输出
    print('{:.0f} {:.0f} {:.0f}'.format(sum1[0]/n,sum1[1]/n,sum1[2]/n))
    print('{} {} {} {} {}'.format(stulis[index].number,stulis[index].name,stulis[index].a,stulis[index].b,stulis[index].c))

  • 相关阅读:
    python生成器和使用gevent操作协程
    python飞机大战
    python控制鼠标键盘+监听键盘
    python生成彩色二维码
    springboot+springcloud+maven相关父子项目创建
    c++求最大公约数
    java8 LocalDateTime
    nginx 代理wss
    vue 全局使用axios
    Vue3.0核心源码解读| 组件渲染:vnode 到真实 DOM 是如何转变的?
  • 原文地址:https://www.cnblogs.com/thgpddl/p/12368458.html
Copyright © 2011-2022 走看看