@DeNySzZz
Человек, мечтающий стать мобильным разработчиком

Почему в файле выводится лишь ответ?

Условие:
Создать файл f, компоненты которого являются целыми числами.
Найти: каких чисел в нем больше: положительных или отрицательных?
Код:
import java.io.File
fun main() {
    val fileName = "f.txt"
    val file = File(fileName)
    println("Введите диапазон A: ")
    val a = readLine()!!.toInt()
    println("Введите диапазон B: ")
    val b = readLine()!!.toInt()
    if ( a < b )
    {
        var positive = 0
        var negative = 0
        println("Введите количество чисел: ")
        val count = readLine()!!.toInt()
        val massive = IntArray(count)
        file.writeText("Исходный массив:")
        for ( i in 0 until count )
        {
            massive[i] = (a..b).random()
            file.writeText("${massive[i]} ")
            when
            {
                massive[i] > 0 -> positive++
                massive[i] < 0 -> negative++
            }
        }
        file.writeText("Количество положительных: $positive")
        file.writeText("Количество отрицательных: $negative")
        when
        {
            positive > negative -> file.writeText("В массиве положительных чисел больше отрицательных")
            positive < negative -> file.writeText("В массиве отрицательных чисел больше положительных")
            positive == negative -> file.writeText("В массиве одиннаковое количество положительных и отрицательных чисел")
        }
    }
        else println("Введен не правильный диапазон.")
}

60412ec1f41ae902233978.png
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
@foonfyrick
Почти правильно сделал, просто надо file на FileWriter заменить и поставить append=true.
Еще у тебя неверно считывает значения из файла, их иногда на 1 меньше.
fun main() {
    val fileName = "f18.txt"
    val file = File(fileName)
    val fw =FileWriter(file,true)
    println("Введите диапазон A: ")
    val a = readLine()!!.toInt()
    println("Введите диапазон B: ")
    val b = readLine()!!.toInt()
    if ( a < b )
    {
        var positive = 0
        var negative = 0
        println("Введите количество чисел: ")
        val count = readLine()!!.toInt()
        val massive = IntArray(count)
        fw.appendln("Исходный массив:")
        fw.flush()
        for ( i in 0 until count )
        {
            massive[i] = (a..b).random()
            fw.appendln("${massive[i]} ")
            when
            {
                massive[i] > 0 -> positive++
                massive[i] < 0 -> negative++
            }
        }
        fw.appendln("Количество положительных: $positive")
        fw.flush()
        fw.appendln("Количество отрицательных: $negative")
        fw.flush()
        when
        {
            positive > negative -> fw.appendln("В массиве положительных чисел больше отрицательных")
            positive < negative -> fw.appendln("В массиве отрицательных чисел больше положительных")
            positive == negative -> fw.appendln("В массиве одинаковое количество положительных и отрицательных чисел")
        }
        fw.flush()

    }
    else println("Введен не правильный диапазон.")
    fw.close()
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Djaler
@Djaler
Сеньор-помидор
Потому что метод File.writeText перезаписывает содержимое файла, а не дописывает (https://kotlinlang.org/api/latest/jvm/stdlib/kotli...)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы