题目
先把作业的题目写出来让大家看看
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<T>(_ 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"