- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个潜水评分程序。但是,我很难获得最低分数并在发生错误后处理输入。有人可以建议吗?感谢您提供的任何帮助。 敬上, 范光
Is there code to get the lowest and highest scores? How come I get 0 for the lowest score instead of 5? Also, after an error is made, can the user reenter a different score and get the correct answer? divingScores[i - 1] = divingScores[i]; Is there a way to go back on an array and enter another value? The dive scoring program takes the evaluative scores of seven judges and arrives at a final score for a dive. Any help is most greatly appreciated.
问题描述: *
* 在跳水运动中,七名裁判给出0到10之间的分数, * 其中每个分数可以是浮点值。最高和最低 * 分数被丢弃,剩下的分数相加。这 * 然后将总和乘以该潜水的难度。 (这 * 难度范围从1.2到3.8分。) 总分是 * 乘以 0.6 得出潜水员的分数。 * 编写一个程序,要求用户输入潜水的难度 * 和七位评委的分数,然后显示该跳水的总分。 * 程序应确保所有输入都在允许的数据范围内 * 范围。 * 评委打分应存储在数组中。 * 请对所有用户输入进行错误检查(错误程度 * 难度和每位评委的分数),验证参赛作品是否来自 * 用户处于最小值和最大值之间。 * 下面给出了一个示例对话框: * * ** 跳水分数计算器 ** * * 输入 1 号裁判的评分 (0 – 10):5 * 输入 2 号裁判的评分 (0 – 10):8.5 * 输入 3 号裁判的评分 (0 – 10):7 * 输入 4 号裁判的评分 (0 – 10):11 * ** 请输入 0 到 10 之间的数字。 * 输入 4 号裁判的评分 (0 – 10):10 * 输入 5 号裁判的评分 (0 – 10):9.9 * 输入 6 号裁判的评分 (0 – 10):8.1 * 输入 7 号裁判的评分 (0 – 10):6.3 * 输入难度(1.2 – 3.8):4 * ** 请输入 1.2 到 3.8 之间的数字)。 * 输入难度(1.2 – 3.8):3.3
* * 所有分数总和:54.8 * 减去最高点和最低点:39.8 *最终得分:78.80 *
import java.util.Scanner ;
/**
* The dive scoring program takes the evaluative scores of seven judges and
* arrives at a final score for a dive.
*
* @author Quang Pham
* @version Module8, Homework Project 1, 4/1/20
*
* Algorithm:
*
* 1. Seven judge's scores are entered into an array.
* 2. The scores are checked to see if they are between the minimum and
* maximum values.
* 3. The total of all the scores, the degree of difficulty, the scores
* minus the high and low scores, and the final score are outputted.
*
*
* Problem Description:
*
* In the sport of diving, seven judges award a score between 0 and 10,
* where each score may be a floating-point value. The highest and lowest
* scores are thrown out and the remaining scores are added together. The
* sum is then multiplied by the degree of difficulty for that dive. (The
* degree of difficulty ranges from 1.2 to 3.8 points.) The total is then
* multiplied by 0.6 to determine the diver’s score.
* Write a program that asks a user to enter a dive's degree of difficulty
* and seven judges’ scores, then displays the overall score for that dive.
* The program should ensure that all inputs are within the allowable data
* ranges.
* The judges scores should be stored in array.
* Please perform error checking on all user entries (degree of
* difficulty and each judge's score), verifying that the entry from the
* user is between a minimum and maximum values.
* A sample dialog is given below:
*
* ** Diving Score Calculator **
*
* Enter the score from Judge #1 (0 – 10): 5
* Enter the score from Judge #2 (0 – 10): 8.5
* Enter the score from Judge #3 (0 – 10): 7
* Enter the score from Judge #4 (0 – 10): 11
* ** Please enter a number from 0 to 10.
* Enter the score from Judge #4 (0 – 10): 10
* Enter the score from Judge #5 (0 – 10): 9.9
* Enter the score from Judge #6 (0 – 10): 8.1
* Enter the score from Judge #7 (0 – 10): 6.3
* Enter the degree of difficulty (1.2 – 3.8): 4
* ** Please enter a number from 1.2 to 3.8).
* Enter the degree of difficulty (1.2 – 3.8): 3.3
*
* The total of all scores: 54.8
* Minus high and low: 39.8
* Final Score: 78.80
*
* Format your final score to 2 digits. You may write this assignment
* as a single class, where you use helper (private) methods to main instead
* of putting them in a separate class.
* Test your program with several different input dives and print
* screen or screen snip of the results.
*
*/
public class DiveScoringProgram {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
double divingScores[] = new double[7] ;
double input ;
double difficultyInput = 0 ;
double high = 0 ;
double low = 0 ;
double totalAllScores = 0 ;
double totalMinusHighLow = 0 ;
double totalFinalScore = 0 ;
double Arrays = 0 ;
for (int i = 0; i < divingScores.length; i++)
{
System.out.println("Enter the score from Judge #" + (i + 1) + " (0-10): ") ;
input = keyboard.nextDouble();
if(input < 0 || input > 10)
{
System.out.println("Invalid score. Please enter a number from 0 to 10") ;
divingScores[i - 1] = divingScores[i];
input = keyboard.nextDouble() ;
}
else
{
totalAllScores += input ;
divingScores[i] = input;
}
}
while (difficultyInput < 1.2 || difficultyInput > 3.8)
{
System.out.println("Enter the degree of difficulty (1.2- 3.8): ") ;
difficultyInput = keyboard.nextDouble() ;
if (difficultyInput < 1.2 || difficultyInput > 3.8)
{
System.out.println("Invalid difficulty input. Please enter a number from 1.2 to 3.8.") ;
difficultyInput = keyboard.nextDouble() ;
}
}
//determine high and low values
for(int i = 0; i < divingScores.length; i++)
{
if(divingScores[i] > high)
{high = divingScores[i];}
if(divingScores[i] < low)
{low = divingScores[i];}
}
System.out.println("low is " + low) ;
System.out.println("high is " + high) ;
totalMinusHighLow = totalAllScores - high - low ;
totalFinalScore = totalMinusHighLow * difficultyInput * 0.6 ;
System.out.println("The total of all scores: " + totalAllScores) ;
System.out.println("Minus high and low: " + totalMinusHighLow) ;
System.out.printf("The overall final score for the dive: %.2f\n", totalFinalScore);
} //end main
} //end class
最佳答案
在重构您的代码时,我会尝试尽可能地分解它。请阅读代码注释以获取解释。
/** Diving Score Calculator **/
// For easier understanding, let's re-declare your variables
// making sure their names are related to the logic at hand
// because this is where I think most of your problem started.
////Constants
final int MIN_SCORE = 0;
final int MAX_SCORE = 10;
final int JUDGE_COUNT = 7;
final float MIN_DIFFICULTY = 1.2f;
final float MAX_DIFFICULTY = 3.8f;
final float SCORE_DETERMINANT = 0.6f;
//// Non-constants
float[ ] diver_scores;
float sum_total, sum_high_low;
float diff_total_high_low, final_score;
float difficulty;
//// Initialize the non-constants using helper methods
// Get the array of scores by judges from the user
diver_scores = getDiverScores(MIN_SCORE, MAX_SCORE, JUDGE_COUNT);
// Get the sum of all values in the array
sum_total = getSumTotal(diver_scores);
// Get the sum of highest and lowest score in the array
sum_high_low = getSumHighLow(diver_scores);
// Subtract the highest and lowest score from total score
diff_total_high_low = sum_total - sum_high_low;
// Get the difficulty level from the user
difficulty = getDifficulty(MIN_DIFFICULTY, MAX_DIFFICULTY);
// Calculate final score
final_score = getFinalScore(diff_total_high_low, difficulty, SCORE_DETERMINANT);
// Print out the results
System.out.println("The total of all scores: %.1f", sum_total) ;
System.out.println("Minus high and low: %.1f", diff_total_high_low) ;
System.out.printf("Final score: %.2f", final_score);
...您的辅助方法
public float[] getDiverScores(int min, int max, int count){
float[] scores = new float[count];
for(int i = 0; i < count; i++){
float score = getInputScore(i+1)
while (score < min || score > max){
// User entered an invalid range for score
// Show error message
System.out.println(" ** Please enter a number from %d to %d", min, max);
// Request for score again
score = getInputScore(i+1);
}
scores[i] = score;
}
return scores;
}
public float getInputScore(int index){
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the score from Judge #" + (index) + " (0-10): ");
// Get and return inputted value from the user
return keyboard.nextFloat();
}
public float getSumTotal(float[ ] scores){
// Sum array using helper method from java8
return java.util.stream.FloatStream.of(scores).sum();
}
public float getSumHighLow(float [ ] scores){
Arrays.sort(scores);
// Sum the highest and lowest values
return scores[0] + scores[scores.length - 1];
}
public float getDifficulty(float min, float max){
float level = getInputDifficulty();
while (level < min || level > max){
System.out.println(" ** Please enter a number from %.1f to %.1f", min, max);
level = getInputDifficulty();
}
return level;
}
public float getInputDifficulty(float min, float max){
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the degree of difficulty (%.1f - %.1f): ", min, max);
// Value from the user
return keyboard.nextFloat();
}
public float getFinalScore(float diff, float difficulty, float dter){
return diff * difficulty * dter;
}
关于java - 跳水成绩数组程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60922660/
我正在尝试创建一个包含 int[][] 项的数组 即 int version0Indexes[][4] = { {1,2,3,4}, {5,6,7,8} }; int version1Indexes[
我有一个整数数组: private int array[]; 如果我还有一个名为 add 的方法,那么以下有什么区别: public void add(int value) { array[va
当您尝试在 JavaScript 中将一个数组添加到另一个数组时,它会将其转换为一个字符串。通常,当以另一种语言执行此操作时,列表会合并。 JavaScript [1, 2] + [3, 4] = "
根据我正在阅读的教程,如果您想创建一个包含 5 列和 3 行的表格来表示这样的数据... 45 4 34 99 56 3 23 99 43 2 1 1 0 43 67 ...它说你可以使用下
我通常使用 python 编写脚本/程序,但最近开始使用 JavaScript 进行编程,并且在使用数组时遇到了一些问题。 在 python 中,当我创建一个数组并使用 for x in y 时,我得
我有一个这样的数组: temp = [ 'data1', ['data1_a','data1_b'], ['data2_a','data2_b','data2_c'] ]; // 我想使用 toStr
rent_property (table name) id fullName propertyName 1 A House Name1 2 B
这个问题在这里已经有了答案: 关闭13年前。 Possible Duplicate: In C arrays why is this true? a[5] == 5[a] array[index] 和
使用 Excel 2013。经过多年的寻找和适应,我的第一篇文章。 我正在尝试将当前 App 用户(即“John Smith”)与他的电子邮件地址“jsmith@work.com”进行匹配。 使用两个
当仅在一个边距上操作时,apply 似乎不会重新组装 3D 数组。考虑: arr 1),但对我来说仍然很奇怪,如果一个函数返回一个具有尺寸的对象,那么它们基本上会被忽略。 最佳答案 这是一个不太理
我有一个包含 GPS 坐标的 MySQL 数据库。这是我检索坐标的部分 PHP 代码; $sql = "SELECT lat, lon FROM gps_data"; $stmt=$db->query
我需要找到一种方法来执行这个操作,我有一个形状数组 [批量大小, 150, 1] 代表 batch_size 整数序列,每个序列有 150 个元素长,但在每个序列中都有很多添加的零,以使所有序列具有相
我必须通过 url 中的 json 获取文本。 层次结构如下: 对象>数组>对象>数组>对象。 我想用这段代码获取文本。但是我收到错误 :org.json.JSONException: No valu
enter code here- (void)viewDidLoad { NSMutableArray *imageViewArray= [[NSMutableArray alloc] init];
知道如何对二维字符串数组执行修剪操作,例如使用 Java 流 API 进行 3x3 并将其收集回相同维度的 3x3 数组? 重点是避免使用显式的 for 循环。 当前的解决方案只是简单地执行一个 fo
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我有来自 ASP.NET Web 服务的以下 XML 输出: 1710 1711 1712 1713
如果我有一个对象todo作为您状态的一部分,并且该对象包含数组列表,则列表内部有对象,在这些对象内部还有另一个数组listItems。如何更新数组 listItems 中 id 为“poi098”的对
我想将最大长度为 8 的 bool 数组打包成一个字节,通过网络发送它,然后将其解压回 bool 数组。已经在这里尝试了一些解决方案,但没有用。我正在使用单声道。 我制作了 BitArray,然后尝试
我们的数据库中有这个字段指示一周中的每一天的真/假标志,如下所示:'1111110' 我需要将此值转换为 boolean 数组。 为此,我编写了以下代码: char[] freqs = weekday
我是一名优秀的程序员,十分优秀!