我今晚在编程项目中使用数组。我可以将数组的所有数字相加,但是从那里我无法从中删除最大值和最小值。我的尝试和实际项目描述如下...如何从数组中提取最大值和最小值?
在潜水运动中,七名评委评分介于0到10之间,其中每个评分可能是一个浮点值。最高分和最低分被抛出,剩下的分数被加在一起。然后将总和乘以该潜水的难度。难度的范围从1.2到3.8分。然后将总数乘以0.6来确定潜水员的分数。
编写一个计算机程序,输入难度和七个评委的分数并输出该潜水的总分。程序应确保所有输入都在允许的数据范围内。
package baker;
import java.util.Scanner;
public class DiveScoreDriver {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
double total = 0;
double totalFinal = 0;
double divingScores[] = new double[7];
double input;
double difficultyInput = 0;
double minimum = divingScores[0];
double maximum = divingScores[0];
for (int i = 1; i < divingScores.length + 1; i++)
{
System.out.println("Judge " + i + " please enter your score.");
input = keyboard.nextDouble();
System.out.println();
if(input < 0 || input > 10)
{
System.out.println("Invalid Score");
return;
}
else
{
total += input;
}
}
while (difficultyInput < 1.2 || difficultyInput > 3.8)
{
System.out.println("Difficulty Rating: ");
difficultyInput = keyboard.nextDouble();
}
for(int i = 0; i < divingScores.length; i++)
{
if(divingScores[i] < minimum)
minimum = divingScores[i];
if(divingScores[i] > maximum)
maximum = divingScores[i];
}
total = total - maximum - minimum;
total = total * difficultyInput;
total = total * 0.6;
System.out.printf("\nThe overall score for the dive: %.1f\n", total);
}
}
特别是我与挣扎的部分是在这里:
for(int i = 0; i < divingScores.length; i++)
{
if(divingScores[i] < minimum)
minimum = divingScores[i];
if(divingScores[i] > maximum)
maximum = divingScores[i];
}
total = total - maximum - minimum;
total = total * difficultyInput;
total = total * 0.6;
代码运行并产生一个正确的输出,但它似乎并没有减去最大值和最小值和问题请求...感谢您的帮助!
看起来对我来说就像你将最大值和最小值初始化为0一样(divingScores起初是一个空数组)。您应该尝试将它们分别设置为一些较小的值和一些较大的值。 – Xyene