import scala.util.control.Breaks._ object BubbleSort { def main(args: Array[String]): Unit = { val sortArray = Array(49,38,65,97,76,13,27,49,78) var exchange = true //**************Begin************************* for( j <- 0 until( sortArray.length -1)){ for(i<- 0 until sortArray.length - 1 -j ){ if(sortArray(i) > sortArray(i+1)){ val temp = sortArray(i) sortArray(i) = sortArray(i+1) sortArray(i+1) = temp } } } //**************End************************** sortArray.foreach(x=> print(x + " ")) } }该代码为何不能运行
时间: 2023-06-01 15:01:51 浏览: 71
该代码存在两处语法错误:
1. 在第 8 行,应该将 `)` 放在 `sortArray.length` 的后面,写成 `sortArray.length - 1`。
2. 在第 14 行,应该将 `)` 放在 `i-1` 的后面,写成 `i-1)`。
正确的代码如下:
```scala
import scala.util.control.Breaks._
object BubbleSort {
def main(args: Array[String]): Unit = {
val sortArray = Array(49, 38, 65, 97, 76, 13, 27, 49, 78)
var exchange = true
for (j <- 0 until sortArray.length - 1) {
for (i <- 0 until sortArray.length - 1 - j) {
if (sortArray(i) > sortArray(i + 1)) {
val temp = sortArray(i)
sortArray(i) = sortArray(i + 1)
sortArray(i + 1) = temp
}
}
}
sortArray.foreach(x => print(x + " "))
}
}
```
相关问题
package scala123123 import scala.collection.mutable.ListBuffer object mod02 { def main(args: Array[String]): Unit = { val names = ListBuffer("zhang", "wang", "liu", "huang", "chen", "zhao") val r = scala.util.Random //按题目要求修改下行代码 if (names.length > 3) { //按题目要求修改下行代码 val i = r.nextPrintableChar //按题目要求修改下行代码 names.append(i.toString) } println(names) } }
根据您的问题,建议将上述代码修改为:
```scala
package scala123123
import scala.collection.mutable.ListBuffer
object mod02 {
def main(args: Array[String]): Unit = {
val names = ListBuffer("zhang", "wang", "liu", "huang", "chen", "zhao")
val r = scala.util.Random
if (names.length > 3) {
val i = r.nextInt(26) + 97
names.append(i.toChar.toString)
}
println(names)
}
}
```
具体的修改包括:
1. 将 `nextInt()` 替换为 `nextPrintableChar()`,因为题目要求随机生成小写字母;
2. 将 `26` 加上 `97` 得到字符编码,因为 `nextPrintableChar()` 返回的是字符编码;
3. 将 `i` 转换成字符串类型,因为 `append()` 方法只接受字符串类型的参数。
注意,这里的修改是根据题目要求进行的,可能与实际需求有所不同。如有需要,请提供更具体的修改要求。
修改mod02代码,功能是随机删除names的三个元素,然后将结果输出,下面两图是两次运行的结果。 完成操作后,将文件中需要补充或修改的代码依次复制到下面三个空中(只复制一行,下一行代码不要复制)package scala123123 import scala.collection.mutable.ListBuffer object mod02 { def main(args: Array[String]): Unit = { val names = ListBuffer("zhang", "wang", "liu", "huang", "chen", "zhao") val r = scala.util.Random //按题目要求修改下行代码 if (names.length > 3) { //按题目要求修改下行代码 val i = r.nextPrintableChar //按题目要求修改下行代码 names.append(i.toString) } println(names) } }
修改后的代码如下所示:
```scala
package scala123123
import scala.collection.mutable.ListBuffer
object mod02 {
def main(args: Array[String]): Unit = {
val names = ListBuffer("zhang", "wang", "liu", "huang", "chen", "zhao")
val r = scala.util.Random
if (names.length > 3) {
names.remove(r.nextInt(names.length))
names.remove(r.nextInt(names.length))
names.remove(r.nextInt(names.length))
}
println(names)
}
}
```
需要补充或修改的代码为:
```scala
names.remove(r.nextInt(names.length))
names.remove(r.nextInt(names.length))
names.remove(r.nextInt(names.length))
```
这里使用了 `remove()` 方法来删除随机选择的三个元素,参数为随机生成的下标。然后使用 `println()` 方法输出删除后的结果。