2015-05-20 3 views
-1
function getScore() { 
    var score = 0; 
    var sum = 0; 
    while (score != -99) { 
     sum = sum + score; 
     score = parseInt(prompt("Enter a score or enter -99 when you're done:"," ")); 
    } 
    document.write("<p>The score total: " + sum + ".</p>"); 
} 

на данный момент, когда я просто нажимаю кнопку, она показывает сумму, я хочу знать, хочу ли я получить средний, самый высокий и самый низкий балл для ввода, что мне нужно делать?Средняя оценка самого низкого уровня

+0

Пожалуйста, отформатируйте свой код – displayname

ответ

0

function getScore() { 
 
    var average = 0 
 
    var sum = 0; 
 
    var highest = 0; 
 
    var lowest = 0; 
 
    var count = 0 
 
    var score = 0; 
 
    
 
    
 
    while (score != -99) { 
 
     score = parseInt(prompt("Enter a score or enter -99 when you're done:", " ")); 
 
     if(score == -99) 
 
      break; 
 
     if(count == 0) 
 
      lowest = score; 
 
     count++; 
 
     sum += score; 
 
     average = sum/count; 
 
     if(score > highest) 
 
      highest = score; 
 
     if(score < lowest) 
 
      lowest = score; 
 
     
 
    } 
 
    
 
    return {"count": count, "sum": sum, "average": average, "highest": highest, "lowest": lowest}; 
 
} 
 
console.log(getScore());

0

Место Числа в массиве, а затем вы можете использовать everage, минимальные и максимальные функции

0

Вы должны оценить, насколько больше или меньше, чем предыдущий

текущее значение

var nmbs = [1, 34, 45, 65, 9], 
 
    min = nmbs[0], 
 
    max = nmbs[0]; 
 

 
for(i in nmbs){ 
 
    //check max&min 
 
    if(nmbs[i] > max){ 
 
     max = nmbs[i]; 
 
    } 
 
    if(nmbs[i] < min){ 
 
     min = nmbs[i]; 
 
    } 
 
} 
 

 
document.querySelector(".result").innerHTML = "Max = "+max+" & Min = "+min;
<p class="result"></p>

0

Попробуйте это. Я заменил переменную sum на массив.

function getScore() { 
    var score = 0; 
    var scores = []; 
    while (score != -99) { 

     score = parseInt(prompt("Enter a score or enter -99 when you're done:"," ")); 
     if (score != -99) scores.push(score); 
    } 
    var sum = 0; 
    var minvalue = 0; 
    var maxvalue = 0; 
    for(var t = 0; t < scores.length; t++) { 
     sum += scores[t]; 
     if (t === 0) { 
      // we default the min/max on the first time through 
      minvalue = scores[t]; 
      maxvalue = scores[t]; 
     } else { 
      // after that we start comparing. 
      if (scores[t] < minvalue) { minvalue = scores[t]; } 
      if (scores[t] > maxvalue) { maxvalue = scores[t]; } 
     } 
    } 
    var avg = sum/scores.length; 

    document.write("<p>The score total: " + sum + ", average: " + avg + ", max: " + maxvalue + ", min: " + minvalue + "</p>"); 
} 

** РЕДАКТИРОВАТЬ НА ОСНОВЕ КОММЕНТАРИЯ ** я добавил значение Max и Min к указанной выше функции. Говоря конкретно на ваш комментарий, если вы используете это решение, -99 никогда не будет в наборе scores. Если да, узнайте, где его добавление в массив scores и предотвратить его.

+0

, это действительно полезно, но я хочу спросить, хочу ли я также получить min и max, как мне это сделать? –

+0

на самом деле я знаю, как получить наивысший и самый низкий, но если я только этот код: if (оценка> наивысший) высший = оценка; если (оценка <минимальная) низкая = оценка; самый низкий всегда -99, как я могу его исправить? –

+0

@StevenHuang вы можете спросить об этом в качестве отдельного вопроса или обновить соответствующий код, чтобы он был актуальным. –