переменные функции не меняются от начального значения, понятия не имею, почему - PullRequest
0 голосов
/ 11 января 2020

в следующей функции maxnum и minnum всегда остаются на их значении бесконечности и не получают значения, которое они должны в то время как l oop, поэтому, когда я регистрирую его на консоли, он говорит соответственно бесконечность и -infinity, любой идеи?

// Read 10 numbers and print
// :a.The maximum number.b.The minimum number.c.The average
printMaxMinSum();

function printMaxMinSum() {
  var numsCount = 10
  var count = 0;
  var sum = 0
  // var inputNumber = +prompt('Enter your number')
  var minNum = Infinity
  var maxNum = -Infinity


  while (count < numsCount) {
    debugger
    var inputNumber = +prompt('Enter your number')
    if (minNum < inputNumber) minNum = inputNumber
    if (maxNum > inputNumber) maxNum = inputNumber
    sum += inputNumber
    count++
  }

  var avg = sum / numsCount
  console.log('The higest number is: ', maxNum, 'the lowest number is: ', minNum, 'the average is: ', avg)
  console.log('avg is', avg)
}

Ответы [ 2 ]

1 голос
/ 11 января 2020

Посмотрите на эти строки:

if (minNum < inputNumber) minNum = inputNumber
if (maxNum > inputNumber) maxNum = inputNumber

Подумайте о логике c: minNum < inputNumber всегда будет false, потому что minNum равно Infinity (что всегда больше любого числа ).

То же самое для второй строки, поскольку maxNum равно -Infinity, что всегда меньше любого числа.

Обратное логическое значение c:

if (inputNumber < minNum) minNum = inputNumber
if (inputNumber > maxNum) maxNum = inputNumber
0 голосов
/ 11 января 2020

вы можете использовать первый входной номер как minNum и maxNum

// Read 10 numbers and print
    // :a.The maximum number.b.The minimum number.c.The average
    printMaxMinSum();
    function printMaxMinSum() {
        var numsCount = 10
        var count = 0;
        var sum = 0
         var inputNumber = +prompt('Enter your number')
         sum += inputNumber
        var minNum = inputNumber
        var maxNum = inputNumber


        while (count < numsCount-1) {
          console.log(numsCount)
            var inputNumber = +prompt('Enter your number')
            if (minNum < inputNumber) minNum = inputNumber
            if (maxNum > inputNumber) maxNum = inputNumber
            sum += inputNumber
            count=count+1;
            console.log(count)
        }

        var avg = sum / numsCount
        console.log('The higest number is: ', maxNum, 'the lowest number is: ', minNum, 'the average is: ', avg)
        console.log('avg is', avg)
    }
...