java累积和扫描方法printf
我是java新手,第一个项目有问题。我似乎无法获得正确范围内的变量,并且不确定扫描仪方法。如果有人能帮助我使它工作,那将是非常有帮助的,谢谢 创建一个名为java累积和扫描方法printf,java,Java,我是java新手,第一个项目有问题。我似乎无法获得正确范围内的变量,并且不确定扫描仪方法。如果有人能帮助我使它工作,那将是非常有帮助的,谢谢 创建一个名为LetterGrade的新程序。提示用户输入其名称。 创建一个名为calculateAvg()的方法。方法应使用累积和算法提示用户输入3个分数并计算平均值。然后,将该值返回到main。 返回平均值后,使用printf()命令打印学生姓名及其平均值。创建另一个名为printLetter()的方法。方法应该传递一个参数(平均等级) 使用if..el
LetterGrade
的新程序。提示用户输入其名称。
创建一个名为calculateAvg()
的方法。方法应使用累积和算法提示用户输入3个分数并计算平均值。然后,将该值返回到main。
返回平均值后,使用printf()
命令打印学生姓名及其平均值。创建另一个名为printLetter()
的方法。方法应该传递一个参数(平均等级)
使用if
..else
if
..else
语句打印学生的平均成绩是否为“A”、“B”、“C”、“D”或“F”。
等级表:
90-100-A
80-89-B
70-79-C
60-69-D
0-59-F
以下是我到目前为止的情况:
import java.util.*;
public class LetterGrade {
private static Scanner console = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("This program will calculate 3 scores to find the");
System.out.println("average score and letter grade.");
System.out.println();
Scanner console = new Scanner(System.in);
System.out.println("Enter your name: ");
String name = console.nextLine();
final double total = calculateAverage();
System.out.printf("Name: %s/nAverage: %f",name, total);
}
public static double calculateAverage() {
double sum = 0.0;
for (int i = 1; i <= 3; i++) {
System.out.print("Please enter score #" + i + ": ");
double next = console.nextDouble();
sum += next;
double total = (sum / 3);
return total;
}
return total;
}
public static double printLetter(int total) {
double total = console.nextDouble();
if (total < 60) {
System.out.print("You're grade is an F.");
} else if (total < 70) {
System.out.print("You're grade is a D.");
} else if (total < 80) {
System.out.print("You're grade is a C.");
} else if (total < 90) {
System.out.print("You're grade is a B.");
} else if (total <= 100) {
System.out.print("You're grade is an A.");
} else {
System.out.print("You have input an invalid number.");
}
}
}
import java.util.*;
公营等级{
专用静态扫描仪控制台=新扫描仪(System.in);
公共静态void main(字符串[]args){
System.out.println(“此程序将计算3个分数,以找到正确的答案”);
System.out.println(“平均分数和字母等级”);
System.out.println();
扫描仪控制台=新扫描仪(System.in);
System.out.println(“输入您的姓名:”);
字符串名称=console.nextLine();
最终双倍总计=calculateAverage();
System.out.printf(“名称:%s/nAverage:%f”,名称,总计);
}
公共静态双重计算范围(){
双和=0.0;
对于(inti=1;ipublicstaticdoublecalculateaverage(){
双和=0.0;
对于(int i=0;i<3;i++){
系统输出打印(“请输入分数”+(i+1)+“:”;
double-next=console.nextDouble();
总和+=下一个;
}
双倍总额=(总和/3);
返回总数;
}
公共等级{
专用静态扫描仪控制台=新扫描仪(System.in);
公共静态void main(字符串[]args){
System.out.println(“此程序将计算3个分数,以找到正确的答案”);
System.out.println(“平均分数和字母等级”);
System.out.println();
System.out.println(“输入您的姓名:”);
字符串名称=console.nextLine();
最终双倍总计=calculateAverage();
System.out.printf(“名称:%s/nAverage:%f”,名称,总计);
印刷信(总计);
}
公共静态双重计算范围(){
双和=0.0;
双倍合计=0.0;
for(int i=1;i当前的问题是您的for声明:
for (int i = 1; i <= 3; i++) {
System.out.print("Please enter score #" + i + "? ");
double next = console.nextDouble();
sum += next;
double total = (sum / 3);
return total;
}
尝试一下这个问题与您的foor循环有关,每次迭代它都会重置其值。您还可以编写以下简单代码:
public static double calculateAverage() {
double sum = 0.0;
for (int i = 1; i <= 3; i++) {
System.out.print("Please enter score #" + i + ": ");
sum += console.nextDouble();
}
return (sum / 3);
}
publicstaticdoublecalculateaverage(){
双和=0.0;
for(int i=1;i)calculateAverage
循环中的最后两条语句位于错误的位置。谢谢!我很感激。非常感谢!谢谢!谢谢你的帮助!我很感激!
for (int i = 1; i <= 3; i++) {
System.out.print("Please enter score #" + i + "? ");
double next = console.nextDouble();
sum += next;
double total = (sum / 3);
return total;
}
import java.util.Scanner;
class LetterGrade {
private static final int NUM_SCORES = 3;
public static void main(String[] args) {
System.out.printf("This program will calculate the average from %d scores and give you a letter grade.%n%n",
NUM_SCORES);
try (Scanner scanner = new Scanner(System.in)) {
System.out.print("Enter your name: ");
String name = scanner.nextLine();
double average = calculateAverage(scanner);
System.out.printf("%nReport:%n");
System.out.printf("Name: %s%nAverage: %.2f%n", name, average);
printLetterGrade(average);
}
}
private static double calculateAverage(Scanner scanner) {
double total = 0;
for (int i = 1; i <= NUM_SCORES; i++) {
double next = getDoubleInput(scanner, String.format("Please enter score #%d: ", i), 0, 100);
total += next;
}
return total / NUM_SCORES;
}
private static void printLetterGrade(double average) {
if (average < 60) {
System.out.println("Your grade is a F.");
} else if (average < 70) {
System.out.println("Your grade is a D.");
} else if (average < 80) {
System.out.println("Your grade is a C.");
} else if (average < 90) {
System.out.println("Your grade is a B.");
} else {
System.out.println("Your grade is an A.");
}
}
private static double getDoubleInput(Scanner scanner, String prompt, double minValue, double maxValue) {
System.out.print(prompt);
double validDouble = -1;
while (scanner.hasNext()) {
if (scanner.hasNextDouble()) {
validDouble = scanner.nextDouble();
if (validDouble >= minValue && validDouble <= maxValue) {
break;
} else {
System.out.printf("Error: Please enter a double between %.0f and %.0f inclusive%n", minValue,
maxValue);
System.out.print(prompt);
}
} else {
System.out.printf("Error: Please enter a double between %.0f and %.0f inclusive%n", minValue, maxValue);
System.out.print(prompt);
scanner.next();
}
}
return validDouble;
}
}
This program will calculate the average from 3 scores and give you a letter grade.
Enter your name: Megan
Please enter score #1: -100
Error: Please enter a double between 0 and 100 inclusive
Please enter score #1: 105
Error: Please enter a double between 0 and 100 inclusive
Please enter score #1: 99
Please enter score #2: 98
Please enter score #3: 100
Report:
Name: Megan
Average: 99.00
Your grade is an A.
public static double calculateAverage() {
double sum = 0.0;
for (int i = 1; i <= 3; i++) {
System.out.print("Please enter score #" + i + ": ");
sum += console.nextDouble();
}
return (sum / 3);
}