题目:从键盘输入一个整数n,定义一个数组arr,长度为n,并且从键建盘输入n个整数,存入数组arr中,然后输入一个整数m,将数组arr中与m相同或是m的倍数的数删除,输出删除后的数组的所有元素。用eclipse-scala代码解决问题。
时间: 2024-11-09 10:17:15 浏览: 11
用数组定义,随机输入100以内整数,然后倒序输出
在Scala中,你可以使用`ArrayBuffer`代替数组,因为它的操作更方便,尤其是对集合的操作。下面是一个简单的解决方案,实现了从键盘输入、处理并输出数组的功能:
```scala
import scala.io.StdIn
object Main {
def main(args: Array[String]): Unit = {
// 读取数组长度
val n = readLine[Int]("请输入数组长度: ")
// 初始化空的ArrayBuffer用于存储整数
val arr = ArrayBuffer[Int]()
// 输入n个整数并添加到数组缓冲区
for (_ <- 0 until n) {
arr += StdIn.readInt()
}
// 读取需要查找和删除的整数
val m = readLine[Int]("请输入需要查找和删除的整数: ")
// 删除数组中与m相同或其倍数的元素
for (i <- arr.indices) {
if (arr(i) % m != 0 && arr(i) != m) {
arr.remove(i)
i -= 1 // 因为删除后需要更新索引
}
}
// 输出删除后的数组
println("删除后的数组: " + arr.mkString(", "))
}
// 读取一行文本转换为整数
private def readLine[T](prompt: String)(implicit numParser: Int => T): T = {
print(prompt)
numParser(readInt())
}
// 读取一个整数并返回
private def readInt(): Int = {
StdIn.readInt()
}
}
```
当你运行这个程序时,它会提示你输入数组长度,然后读取相应个数的整数,接着让你输入一个值m,最后删除所有与m相等或成倍数的元素,并输出结果。
阅读全文