zoukankan      html  css  js  c++  java
  • swift3.0 基础练习-构造对象并按要求进行排序(struct)

    struct练手
    构造10个学生(要求有学生的姓名、数学成绩、英语成绩),按照学生英语和数学平均分的成绩从小到大输出学生的姓名、数学成绩、英语成绩及平均分
    创建一个学生构造体,包含 姓名 name 数学成绩 mathScore英语成绩 englishScore 平均分average 并在创建时求出平均分

    struct Student{
        var name:String
        var mathScore:Int
        var englishScore:Int
        var average:Float
    
            //MARK: - 初始化并求平均值
        init(name:String,mathScore:Int,englishScore:Int) {
            self.name = name
            self.mathScore = mathScore
            self.englishScore = englishScore
            self.average = Float(self.mathScore + self.englishScore) / 2
        }
    }
    

    排序我这里使用的是喜闻乐见的冒泡法

    func sortWithAverage(students:[Student]) -> [Student] {
            var result = students
            for i in 0..<result> result[j].average) {
                        let tmp = result[i]
                        result[i] = result[j]
                        result[j] = tmp
                    }
                }
            }
            return result
        }
    

    下面我们来构造对象并输出结果

    //构造10个学生对象
    var student01 = Student(name: "st01", mathScore: 67, englishScore: 98)
    var student02 = Student(name: "st02", mathScore: 87, englishScore: 56)
    var student03 = Student(name: "st03", mathScore: 47, englishScore: 86)
    var student04 = Student(name: "st04", mathScore: 65, englishScore: 88)
    var student05 = Student(name: "st05", mathScore: 85, englishScore: 97)
    var student06 = Student(name: "st06", mathScore: 85, englishScore: 94)
    var student07 = Student(name: "st07", mathScore: 92, englishScore: 76)
    var student08 = Student(name: "st08", mathScore: 93, englishScore: 66)
    var student09 = Student(name: "st09", mathScore: 63, englishScore: 93)
    var student10 = Student(name: "st10", mathScore: 99, englishScore: 82)
    
    //调用排序方法
    var result = sortWithAverage(students: [student01,
                                            student02,
                                            student03,
                                            student04,
                                            student05,
                                            student06,
                                            student07,
                                            student08,
                                            student09,
                                            student10])
    
    print("英语和数学平均分的成绩从小到大排列为:")
    //遍历结果数组并打印
    for i in 0..<result.count{
        print("姓名:(result[i].name),数学成绩:(result[i].mathScore),英语成绩:(result[i].englishScore),平均分:(result[i].average)")
    }
    

    结果就出来了

    struct.png

  • 相关阅读:
    c#关闭excel进程失败的解决方法
    [数据库SQL实战] 基本语法记录
    [牛客数据库SQL实战] 51~61题及个人解答
    [牛客数据库SQL实战] 41~50题及个人解答
    [牛客数据库SQL实战] 31~40题及个人解答
    [牛客数据库SQL实战] 21~30题及个人解答
    [牛客数据库SQL实战] 11~20题及个人解答
    [牛客数据库SQL实战] 1~10题及个人解答
    [牛客数据库SQL实战] 准备篇
    我在博客园安家了
  • 原文地址:https://www.cnblogs.com/gongxiaokai/p/7123797.html
Copyright © 2011-2022 走看看