Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在二维数组NxN Swift上创建、随机填充和搜索元素_Arrays_Swift_Multidimensional Array_Random - Fatal编程技术网

Arrays 在二维数组NxN Swift上创建、随机填充和搜索元素

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

我创建了一个数字数组,尝试填充它们的规则或随机大小NxN,然后在每个对角线中查找数量并进行推导。帮助理解我在评论中指出的错误。我做错了什么?谢谢大家!

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不理解你的问题。编译器没有检查整数索引。