Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java累积和扫描方法printf_Java - Fatal编程技术网

java累积和扫描方法printf

java累积和扫描方法printf,java,Java,我是java新手,第一个项目有问题。我似乎无法获得正确范围内的变量,并且不确定扫描仪方法。如果有人能帮助我使它工作,那将是非常有帮助的,谢谢 创建一个名为LetterGrade的新程序。提示用户输入其名称。 创建一个名为calculateAvg()的方法。方法应使用累积和算法提示用户输入3个分数并计算平均值。然后,将该值返回到main。 返回平均值后,使用printf()命令打印学生姓名及其平均值。创建另一个名为printLetter()的方法。方法应该传递一个参数(平均等级) 使用if..el

我是java新手,第一个项目有问题。我似乎无法获得正确范围内的变量,并且不确定扫描仪方法。如果有人能帮助我使它工作,那将是非常有帮助的,谢谢

创建一个名为
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;i
publicstaticdoublecalculateaverage(){
双和=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);
}