环球-Swift 第二周

题目

先把作业的题目写出来让大家看看

1、var string="my name is Tina"   将string按字母顺序排序
2、var bigArray=[4,6,1,3,2,5]进行排序,用三种方法
3、写一个九九乘法表
4、编写一个函数可以计算其参数的平均值
5、定义一个数组,写一个函数,传任意数组中的两个元素,可以实现交换数组中的两个元素
6、将数组[“A”,”B”,”C”]转换为字符串A:B:C
7、作业将课件翻译成OC
8、将朋友圈的数据规范简写

7题暂时还没写完,先不发出来了。

答案

第一题

import UIKit

//第一题: var string="my name is Tina"   将string按字母顺序排序
var string = "my name is Tina"
//尾随闭包排序,省略了参数及关键字,返回字符组成的数组
let stringArray = string.characters.sorted {$0 < $1}
var stringRange = ""
for character in stringArray
{
    stringRange.append(character)
}
print(stringRange)//输出:"   Taaeiimmnnsy\n"

第二题

//第二题: var bigArray=[4,6,1,3,2,5]进行排序,用三种方法
var bigArray = [4,6,1,3,2,5]
//1、尾随闭包排序
let bigArray1 = bigArray.sorted {$0 < $1}
print(bigArray1)//输出:"[1, 2, 3, 4, 5, 6]\n"
//2、嵌套循环
var bigArray0 = bigArray
var bigArray2 = [Int]()
while bigArray0.count >= 1
{
    var i = bigArray0[0]
    var a = 0
    for (index,intI) in bigArray0.enumerated()
    {
        if i > intI
        {
            i = intI
            a = index
        }
    }
    bigArray2.append(i)
    bigArray0.remove(at: a)
}
print(bigArray2)//输出:"[1, 2, 3, 4, 5, 6]\n"

3、自定义算法排序

第三题

//第三题: 写一个九九乘法表
var intX = 1
while intX <= 9
{
    var intY = 1
    while intY <= 9
    {
        print("\(intX)乘以\(intY)等于\(intX * intY)。")
        intY += 1
    }
    intX += 1
}

第四题

//第四题: 编写一个函数可以计算其参数的平均值
//四舍五入保留 places 位小数
extension Double
{
    func roundTo(places: Int) -> Double
    {
        let divisor = pow(10.0, Double(places))
        return (self * divisor).rounded() / divisor
    }
}
func average(numbers: Int...) -> Double
{
    var sum = 0, avr = 0.0
    for number in numbers
    {
        sum += number
    }
    avr = Double(sum) / Double(numbers.count)
    let avr2 = avr.roundTo(places: 2)
    return avr2
}
let avr = average(numbers: 2,5,11,7,9,17,19,27)//avr = 12.13

第五题

//第五题: 定义一个数组,写一个函数,传任意数组中的两个元素,可以实现交换数组中的两个元素
let arrayAny = [1, 2, "hello", 4, 5] as [Any]
var arrayAny1 = arrayAny
//使用系统的函数
swap(&arrayAny1[1], &arrayAny1[2])
print(arrayAny1)//输出:"[1, "heoll", 2, 4, 5]\n"

//自定义函数,将参数定义为泛型,可以实现任意两个元素交换
//参数名前加下划线调用时可省略该参数名,使用 inout 代表参数可以被修改
func swap2(_ a: inout T, _ b: inout T)
{
    (a, b) = (b, a)//使用元组来调换两个参数值
}
var arrayAny2 = arrayAny
//在调用加了关键字 inout 修饰的参数时,需加取地址 & 符号,以表示该参数允许被修改
swap2(&arrayAny2[1], &arrayAny2[2])
print(arrayAny2)//输出:"[1, "heoll", 2, 4, 5]\n"

第六题

//第六题:将数组[“A”,”B”,”C”]转换为字符串A:B:C
let arrayString = ["A", "B", "C"]
var stringABC = ""
var i = 1
for string in arrayString
{
    stringABC.append(string)
    if i < arrayString.count
    {
        i += 1
        stringABC += ":"
    }
}
print(stringABC)//输出:"A:B:C\n"

第八题

链接

Demo 链接

效果图

环球-Swift 第二周_第1张图片
效果图

你可能感兴趣的:(环球-Swift 第二周)