2014-06-17 44 views
-3

我不知道这里有什么问题。当我划分(在回报语句中)时,它会给我“源文件中的无效字符”。如何使用两个变量快速划分两个数字?

我试着在'总和'和'数字'之间给出一些空间,但没有任何适用于我的作品。

func sumOf(numbers:Int...)->(Int) { 
    var sum=0 
    for numbers in numbers { 
     sum+=numbers 
     // 
    } 
    //println("\(numbers)") 
    return sum/numbers 

} 
+0

的除法运算器是'/' – Felix

+0

亚我尝试“/”也它给了我“无法找到过载/接受提供的参数' – guru

回答

4
  1. 除法运算符是/,不\

  2. sum\numbers - 呃,什么?你的意思是sum/numbers.count

2

return sum\numbers

我想你可能是指以斜杠(/)字符,而不是一个反斜杠。

而且,我很惊讶你过去,这:

for numbers in numbers {

好像你应该比你使用的参数,像这样的迭代变量使用不同的名称:

for n in numbers { 
+0

返回sum \数字也给我错误“源文件中的无效字符” – guru

+0

@guru是的,当然它......我引用你的代码来指出问题。我在下面解释了它的问题。你应该使用'sum/numbers'而不是'sum \ numbers'。 – Caleb

+0

没有理由说编译器应该给你一个关于对循环变量使用相同名称的错误,这只是表示无论你正在迭代的内容都会在循环期间被遮蔽。 – porglezomp

0

您需要使用“/”来划分,而不是“\”。

所以,

return sum/numbers 
0

在“for”语句之外,“numbers”是一个数组。你不能用一个数组类型来分割一个Int(除非你重载/运算符,可能产生一个数组结果?)。也许你想使用数组呢?

0

由于数字是一个列表,你不能除以它。您应该使用numbers.count。您还在你for -loop有一个错误,你应该添加number而不是number_s_

func averageOf(numbers: Int...) -> Int { 
    var sum = 0 
    for number in numbers { 
     sum += number 
    } 
    return sum/numbers.count 
}