Scala语言通过键盘创建不等长的2维数组,每一维长度从键盘输入,将输入数据按照降序排列,输出二维数组的所有元素。
时间: 2024-09-23 07:08:51 浏览: 25
在Scala中,你可以使用`Array.ofDim`函数结合`scala.io.StdIn.readLine`读取用户输入来创建不等长的二维数组,并使用`sortWith`方法对元素进行降序排序。以下是完成这个任务的一个简单示例:
```scala
import scala.io.StdIn
// 读取用户输入并创建二维数组
def createArray(): Array[Array[Int]] = {
val rows = readLine("请输入行数:").toInt
(0 until rows).map { _ =>
val cols = readLine(s"请输入第$(_ + 1)行的列数:").toInt
Array.fill(cols)(readLine(s"请输入第$(_ + 1), $cols个元素:").toInt).sorted(Ordering[Int].reverse)
}
}
// 输出二维数组的所有元素
def printArray(arr: Array[Array[Int]]) {
arr.foreach(row => println(row.mkString(", ")))
}
val myArray = createArray()
printArray(myArray)
相关问题
用Scala语言通过键盘创建不等长的2维数组,每一维长度从键盘输入,将输入数据按照降序排列,输出二维数组的所有元素。
在Scala中,你可以使用`Array.ofDim`函数来动态创建不等长的2D数组,并通过`sortWith`方法对数组元素进行排序。以下是完成这个任务的一个示例:
```scala
import scala.io.StdIn.readLine
// 获取用户输入的矩阵维度
println("请输入二维数组的第一维长度:")
val rows = readLine.toInt
println("请输入二维数组的第二维长度:")
val cols = readLine.toInt
// 创建一个空的2D数组
val arr = Array.ofDim[Int](rows, cols)
// 用户输入数组元素
println(s"请输入每行的元素,按空格分隔:")
for (i <- 0 until rows) {
val input = readLine.split("\\s+").map(_.toInt)
// 将输入的元素转换为数组并添加到2D数组中
arr(i)(0 until input.length) = input
}
// 对二维数组进行降序排列
arr.sortWith(_ > _)
// 输出排序后的元素
println("排序后的二维数组:")
for (row <- arr) {
row.foreach(println)
}
通过键盘创建不等长的2维数组,每一维长度从键盘输入,将输入数据按照降序排列,输出二维数组的所有元素。Scala
在Scala中,你可以使用`Array.ofDim`函数创建不等长的二维数组,然后通过`reverseOrder`方法对元素进行排序。下面是一个简单的示例步骤:
1. 首先,从用户那里获取每一维的长度作为输入。可以使用`scala.io.StdIn.readLine`来读取整数。
```scala
val dimensions = readLine("请输入二维数组的第一维长度:").toInt,
secondDimensionLength = readLine("请输入二维数组的第二维长度:").toInt
```
2. 创建不等长的二维数组,并填充用户输入的数据。
```scala
val array = Array.fill(dimensions)(Array.fill(secondDimensionLength)(readLine("请输入元素:")))
```
3. 对二维数组的第一维度进行降序排列,即按行排序。
```scala
val sortedArray = array.sortBy(_._1)
```
4. 最后,遍历并打印降序排列后的二维数组。
```scala
for ((row, index) <- sortedArray.indices.zip(sortedArray)) {
println(s"第${index + 1}行: ${row.mkString(", ")}")
}
```