A whole team is competing. Use a for loop over the arrays to find the most productive employee, then print their 15% bonus.
You start with:
val names = Array("John Doe", "Mary Jane", "Bob Smith", "Alice Chen", "Carlos Diaz")
val productivities = Array(83, 133, 97, 150, 120)
val salaries = Array(135000, 335000, 210000, 250000, 180000)
Build:
Alice Chen Bonus: $37500
Rules:
- Index
iin all three arrays refers to the same employee. - The winner is whichever employee has the highest productivity. If two employees share the highest productivity, the one listed first wins.
- The winner's bonus is 15% of their salary, rounded down to a whole number.
- Print the winner's name on the first line, then
"Bonus: $<amount>"on the second.
Start with
var bestIndex = 0 and loop over the other indices with for (i <- 1 until names.size). Inside the loop, update the best index only when productivities(i) > productivities(bestIndex): a strict comparison keeps the first employee on a tie.
Dividing two whole numbers (
Int) drops the fraction, so salaries(bestIndex) * 15 / 100 is already rounded down: val bonus = salaries(bestIndex) * 15 / 100
+ turns the Int into text: println("Bonus: $" + bonus)
val names = Array("John Doe", "Mary Jane", "Bob Smith", "Alice Chen", "Carlos Diaz")
val productivities = Array(83, 133, 97, 150, 120)
val salaries = Array(135000, 335000, 210000, 250000, 180000)
var bestIndex = 0
for (i <- 1 until names.size) {
if (productivities(i) > productivities(bestIndex)) {
bestIndex = i
}
}
val bonus = salaries(bestIndex) * 15 / 100
println(names(bestIndex))
println("Bonus: $" + bonus)
Free plan: 30 tutor messages. Premium is unlimited.
Saved
Ctrl + Enter to check
