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)")
}

结果就出来了

swift3.0 基础练习-构造对象并按要求进行排序(struct)的更多相关文章

  1. swift3.0基础语法

    swift 3.0 基础语法 目录 01-变量和常量 02-运算符 03-可选项 04-条件语句 05-循环 06-字符串 07-元组 08-数组 09-字典 10-对象和类 11-枚举 12-属性 ...

  2. swift3.0基础语法(2)

    变量/常量,元组声明 var aaa = 0;//声明变量aaa 首次赋值时自动解析为Int类型 var aaa:Int = 0;//声明Int类型变量aaa let aaa = 0;//声明常量aa ...

  3. Swift3.0基础语法学习<二>

    对象和类: // // ViewController2.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/15. // Copyright © ...

  4. Swift3.0 基础学习梳理笔记(一)

    本篇是我在学完一遍基础语法知识的时候,第一遍复习,我一遍梳理一遍记录的笔记.同时分享给像我一样在学习swift 的猿友们. 本篇可能过于冗长.所以所有的参考资料都分模块的写在palyground 里, ...

  5. Swift3.0基础语法学习<一>

    // // ViewController.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/15. // Copyright © 2016年 ...

  6. Swift3.0基础语法学习<五>

    异常处理: // // ViewController5.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright © ...

  7. Swift3.0基础语法学习<四>

    协议和扩展: // // ViewController4.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright ...

  8. Swift3.0基础语法学习<三>

    枚举和结构体: // // ViewController3.swift // SwiftBasicDemo // // Created by 思 彭 on 16/11/16. // Copyright ...

  9. swift3.0 基础练习-实现99乘法表

    用的方法比较笨 大致效果是这样 思路: 第一行 拼接一次 第二行 拼接二次 ... 第九行 拼接九次 //num控制个数 var num = 1 //result为结果 var result = &q ...

随机推荐

  1. 静态代码块详解(原出处:http://versioneye.iteye.com/blog/1129579)

    一 般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情 况下,其他程序来调用的时候,需要使用静态方法,这种 ...

  2. HTTPS协议入门

    目录什么是https?https的利与弊?https的原理和流程?什么是证书/CA证书?什么是单向SSL认证与双向SSL认证?网站如何实现https?网站实现https的一些补充说明参考网页 一.什么 ...

  3. 前端基于JQgrid实现自定义列头展示

    先上效果图   因为公司项目的需要,并且公司只有我这一个能写js的前端,这个自定义展示jqgrid列选项的需求依然是交由我写,辣么就分享一下我的工作成果. //初始化函数 multiSelectCol ...

  4. 基于C#的Appium自动化测试框架(Ⅰ)

    因为工作原因,使用的编程语言都是C#,但是国内相应的Appium资料少得可怜,Java版本的Appium也考虑过,但是奈何自己搞不定Eclipse这个编译环境[说白了就是因为懒-- 无意中看到了外面的 ...

  5. 如何让.Net线程支持超时后并自动销毁!

    如何让.Net线程支持超时后并自动销毁! 1.使用CancellationTokenSource之基于Task实现方式 CancellationTokenSource source = new Can ...

  6. github--hello,world(参考官网)

    官网:https://guides.github.com/activities/hello-world/ 一共分为5步. 1.为你的项目新建仓库(repository): 2.新建分支(branch) ...

  7. [1] Report Fusioncharts

    图形报表之fusioncharts  

  8. Ipython 自动重载

    一. 使用示例 In [1]: %load_ext autoreload In [2]: %autoreload 2 # Reload all modules (except those exclud ...

  9. Kubernetes服务之StatefulSets简介

    StatefulSets在v1.5时还是个beta特性,它取代了v1.4的PetSets特性.PetSets的用户可以参考v1.5的升级指导,将正在运行的PeetSets升级到StatefulSets ...

  10. php后台拼接输出table表格

    <?php header("Content-type:text/html;charset=utf-8"); $str=''; $str.='<table border= ...