Arrays 在二维数组NxN Swift上创建、随机填充和搜索元素
我创建了一个数字数组,尝试填充它们的规则或随机大小NxN,然后在每个对角线中查找数量并进行推导。帮助理解我在评论中指出的错误。我做错了什么?谢谢大家!Arrays 在二维数组NxN Swift上创建、随机填充和搜索元素,arrays,swift,multidimensional-array,random,Arrays,Swift,Multidimensional Array,Random,我创建了一个数字数组,尝试填充它们的规则或随机大小NxN,然后在每个对角线中查找数量并进行推导。帮助理解我在评论中指出的错误。我做错了什么?谢谢大家! func diagonals (n:Int) -> String{ var sumFirst: Int var sumSecond: Int var multArray = Array(count: n, repeatedValue: Array(count: n, repeatedValu
func diagonals (n:Int) -> String{
var sumFirst: Int
var sumSecond: Int
var multArray = Array(count: n, repeatedValue: Array(count: n, repeatedValue: 0))
print(multArray) //create 2d array NxN with Initialisation
for var i in multArray {
for var k in multArray {
multArray[i][k] = i+k // fill array elements the sum of the indices (error line) or we can fill it random, but how?
if i==k { //check element on the main diagonal
sumFirst += multArray[i][k] // do sum (error line)
}
if (i+k) == n { //check element on secondary diagonal (error line)
sumSecond += multArray[i][k] // do sum (error line)
}
}
}
return "Sum elemets on main diagonal =\(sumFirst) and second =\(sumSecond)"
}
diagonals(3)
解决了
func diagonals (n:Int) -> String{
var sumFirst = 0
var sumSecond = 0
var multArray = Array(count: n, repeatedValue: Array(count: n, repeatedValue: 0))
print(multArray) //create 2d array NxN with Initialisation
for indexI in multArray.indices {
for indexK in multArray.indices {
multArray[indexI][indexK] = Int(arc4random_uniform(UInt32(n))) // fill array elements randomly
if indexI==indexK { //check element on the main diagonal
sumFirst += multArray[indexI][indexK] // do sum
}
if (indexI+indexK + 1) == n { //check element on secondary diagonal
sumSecond += multArray[indexI][indexK] // do sum
}
}
}
print(multArray)
return "Sum elemets on main diagonal =\(sumFirst) and second =\(sumSecond)"
}
diagonals(3)
错误为
error:无法为multArray.enumerate()中的(indexI,elementI)和multArray.enumerate()中的(indexK,elementK)的类型的值(aka'Array)下标
@ronatory谢谢你,朋友!我在回复中更正并写下了决定。不客气,但我也推荐Sulthan在你的决定评论中的提示,而不是Multaray.enumerate()中的(indexI,uu)(
你可能只想在multArray.indexI中使用,或者在0..1中使用)对于multArray.index{
中indexI的方法{
我可以扫描一行中的两个索引吗?例如,multArray.index{
2)对于0中的index的方法..不容易,但可以迭代一个索引并将其转换为两个索引。类似于let index=(0..是的..这不好…那么第二个问题呢?@SulthanI不理解你的问题。编译器没有检查整数索引。