美文网首页ios学习之路
swift3.0 基础练习-构造对象并按要求进行排序(struc

swift3.0 基础练习-构造对象并按要求进行排序(struc

作者: gwk_iOS | 来源:发表于2016-12-15 00:43 被阅读140次

写在前面
弄了下个人站...防止内容再次被锁定...所有东西都在这里面
welcome~
个人博客

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

相关文章

  • swift3.0 基础练习-构造对象并按要求进行排序(struc

    写在前面弄了下个人站...防止内容再次被锁定...所有东西都在这里面welcome~个人博客 struct练手构造...

  • Java lambda表达式 将list转成map 并排序

    //将list 排序,并按照排序后的结果进行有序分组LinkedHashMap > alarmMap = alar...

  • 数组对象中字符串的排序

    按照name进行排序: 要求按照name进行排序,我们可以使用Array对象的sort()方法,在W3school...

  • Java 排序

    概述 ​对Java对数组对象进行排序,Java对排序问题的处理。Java排序一般包括基础排序和Lambda Com...

  • 基础排序算法总结(七种排序算法C代码)

    排序是最基础的算法,从排序的对象来说主要分为内部排序和外部排序。内部排序主要是针对内存中的数据进行排序,外部排序针...

  • swift3.0- 构造函数

    构造函数的介绍 作用: 对实例对象的内容进行初始化Swift要求类或者结构体中的存储属性(非lazy的)在对象构造...

  • 构造方法

    构造方法: 作用:对实例对象的内容进行初始化Swift要求类或者结构体中的存储属性(非lazy的)在对象构造完毕后...

  • Swift构造方法

    构造方法作用:对实例对象的内容进行初始化Swift要求类或者结构体中的存储属性(非lazy属性)在对象构造完毕后要...

  • 2020-05-14

    NSSortDescriptor 用于排序,可根据对象本身或者对象属性进行排序

  • TreeMap的用法

    构造方法 // 默认构造函数。使用该构造函数,TreeMap中的元素按照自然排序进行排列。TreeMap() //...

网友评论

    本文标题:swift3.0 基础练习-构造对象并按要求进行排序(struc

    本文链接:https://www.haomeiwen.com/subject/nyuwmttx.html