Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Веб разработчики (Фронтенд) ПОГИТЕ С ЗАДАЧЕЙ

Арсений Половинкин Знаток (367), на голосовании 1 год назад
вета, Максим и Дима участвовали в викторине, состоящей из трех раундов. В каждом раунде ребята зарабатывали очки.

Света набрала 30, 50 и 40 очков
Максим набрал 52, 39 и 45 очков
Дима набрал 48, 60 и 55 очков

Рассчитайте среднее количество очков, набранное каждым участником в сумме за 3 раунда
Определите, кто из участников выиграл по среднему результату, и выведите победителя в консоль
Предусмотрите вариант ничейного исхода игры

Постарайтесь выполнить это задание, используя конструкцию switch()
Голосование за лучший ответ
Celtic Hammer Мудрец (16454) 1 год назад
Конструкция switch() здесь малоуместна
 obj = { 
'Света': [30,50,40],
'Максим': [52,39,45],
'Дима': [48,60,55]
}
let result = new Array();
const s = n => {
sum = n.reduce(function(sum, current) {
return sum + current;
}, 0);
return sum
}
const f = x => s(x) / x.length;
max_ = 0;
vinner = '';
for (i in obj) {
nmax_ = f(obj[i])
if (nmax_ > max_) {
max_ = nmax_;
vinner = i;
}
result.push(nmax_);
}
let c = new Set(result);
let nn = 'Ничья';
let res = c.size == 1? nn : vinner;
console.log(res);
Евгений Губарев Мастер (1128) 1 год назад
 // Очки каждого участника в трех раундах 
const scores = {
Света: [30, 50, 40],
Максим: [52, 39, 45],
Дима: [48, 60, 55]
};

// Функция для вычисления среднего значения массива
function calculateAverage(arr) {
return arr.reduce((acc, curr) => acc + curr, 0) / arr.length;
}

// Вычисляем средние значения для каждого участника
const averages = {};
for (let participant in scores) {
averages[participant] = calculateAverage(scores[participant]);
}

// Находим максимальное среднее значение
let maxAverage = Math.max(...Object.values(averages));

// Подсчитываем, сколько участников имеют максимальное среднее значение
let winnersCount = 0;
for (let participant in averages) {
if (averages[participant] === maxAverage) {
winnersCount++;
}
}

// Выводим результаты
switch (winnersCount) {
case 0:
console.log("Нет победителя, ничья!");
break;
case 1:
for (let participant in averages) {
if (averages[participant] === maxAverage) {
console.log(`${participant} победил(а) со средним результатом ${maxAverage} очков.`);
break;
}
}
break;
default:
console.log("Ничья! Несколько участников имеют одинаковое среднее количество очков.");
break;
}
В консоли получаем:
 "Дима победил(а) со средним результатом 54.333333333333336 очков." 
Похожие вопросы