【问题标题】:Class Average Methods, and array类平均方法和数组
【发布时间】:2018-10-04 05:25:53
【问题描述】:

这是我被要求遵循的提示。

编写一个名为 average 的方法,它接收一组测试成绩并返回字母成绩 班级平均水平。 成绩范围如下:

  • 平均 >= 90 -> A

    80 B

    70 C

    60 D

    平均 F

使用下面的方法头:public static char average(int[] grades)

这是我应该遵循的输出示例。

你想报几级? 10

进入 1 年级:70 进入二年级:87 进入3年级:95 进入4年级:80 进入五年级:80 进入六年级:78 进入7年级:85 进入8年级:90 进入9年级:66 进入10年级:89

测试的班级平均成绩是:B

这是我目前所拥有的,但我不知道如何包含上述方法标头。公共静态字符平均(int[] 等级)

import java.util.Scanner;
public class ClassAverage{
    //Main Method
    public static void main(String[] args){

        //Variables
        char average;                                                       
        int i;                                                              
        int sum = 0;                                                        
        int b;                                                                                              

        Scanner scan = new Scanner(System.in);                              
        System.out.print("How many grades do you want to enter: ");
        int grades = scan.nextInt();                                                
        int array[] = new int[grades];                                          

        for(i = 0;i < grades; i++){                                             
            System.out.print("Enter grade " + (i + 1) + ": ");
            array[i] = scan.nextInt(); 
            sum = sum + array[i];
        }
        b = sum / array.length;

        if(b >= 90)                                                         
            average = 'A';
        else if(b <= 90 && b >= 80)
            average = 'B';
        else if(b <= 80 && b >= 70)
            average = 'C';
        else if(b <= 70 && b >= 60)
            average = 'D';
        else if(b <= 60)
            average = 'F';
        else
            average = '?';
        System.out.println("The class average for the test is: " + average);            
        }
}

【问题讨论】:

    标签: java arrays methods average


    【解决方案1】:
    public class MainClass {
    
    //Main Method
    public static void main(String[] args) {
    
        //Variables
        char avg;
        int i;
    
        Scanner scan = new Scanner(System.in);
        System.out.print("How many grades do you want to enter: ");
        int grades = scan.nextInt();
        int array[] = new int[grades];
    
        for (i = 0; i < grades; i++) {
            System.out.print("Enter grade " + (i + 1) + ": ");
            array[i] = scan.nextInt();
        }
    
    
        avg = average(array);
        System.out.println("The class average for the test is: " + avg);
    }
    
    private static char average(int[] array) {
        final int sum = Arrays.stream(array).sum();
        final int b = sum / array.length;
    
        if (b >= 90) {
            return 'A';
        } else if (b <= 90 && b >= 80) {
            return 'B';
        } else if (b <= 80 && b >= 70) {
            return 'C';
        } else if (b <= 70 && b >= 60) {
            return 'D';
        } else if (b <= 60) {
            return 'F';
        } else {
            return '?';
        }
    
    } }
    

    看到我接受了所有标记到一个数组中,并将该 int 数组传递给我计算总和和等级并返回等级的方法

    【讨论】:

      【解决方案2】:

      您的教师希望您创建一个可以从 main 中调用的名为 average 的方法。

      基本上,完成分配所需要做的就是将代码包装在该方法中。所以 main 会调用 average 已经将ints 传递给它。

      【讨论】:

      • 感谢您的回复,但我真的不知道该怎么做,这是我坚持的部分。
      【解决方案3】:

      我编写了一些伪代码来帮助您获取现有代码并将其封装在您请求的方法中。

      您已经编写了这些片段,您只需将它们从您的 main 方法移动到这个新的 average 方法,并进行任何必要的更改,以更改范围(在新方法中声明或重命名某些变量) .

      然后,要获得所需的输出,您可以使用 average(gradeArray) 并使用 print 语句中返回的 char 值从 main 中调用该方法。

      public static char average(int[] gradeArray) {
      
          // Find the sum of grades in gradeArray
      
          // Use this sum and the size of the array to compute the average
      
          // Use logic to determine which letter grade to print out based on the average
      
          // Return the average
      }
      

      【讨论】:

        【解决方案4】:

        这是非常简单的代码。我的答案是

        import java.util.Scanner;
        
        
        public class AverageMethod {
            public static void main(String[] args) {
               char average;                                                       
                int i;                                                              
                int sum = 0;                                                        
                int b;                                                                                              
        
                Scanner scan = new Scanner(System.in);                              
                System.out.print("How many grades do you want to enter: ");
                int grades = scan.nextInt();                                                
                int array[] = new int[grades];                                          
        
                for(i = 0;i < grades; i++){                                             
                    System.out.print("Enter grade " + (i + 1) + ": ");
                    array[i] = scan.nextInt(); 
                    sum = sum + array[i];
                }
                b = sum / array.length;
        
                if(b<=100 && b>=0){
        
                    if(b<=100 && b >= 90)                                                         
                        average = 'A';
                    else if(b >= 80)
                        average = 'B';
                    else if(b >= 70)
                        average = 'C';
                    else if(b >= 60)
                        average = 'D';
                    else
                        average = 'F';
                    System.out.println("The class average for the test is: " + average); 
                }else{
                    System.out.println("Not in range");
                }
        
        
            }
        
        } 
        

        我还为你添加了我的 github 上传的男女同校。如果您有任何问题,请关注我的githublink。请研究它以获得更多说明。

        【讨论】:

        • 这不是 OP 所要求的。他想计算public static char average(int[] grades) 内部的平均值,但您的代码仅对 OP 已经完成的工作添加了验证。
        【解决方案5】:

        另一种解决方案:

        package test163;
        
        import java.util.Scanner;
        
        public class ClassAverage {
        
            //Main Method
            public static void main(String[] args) {
        
                //Variables
                char average;
                int i;
                int b;
        
                Scanner scan = new Scanner(System.in);
                System.out.print("How many grades do you want to enter: ");
                int grades = scan.nextInt();
                int array[] = new int[grades];
        
                for (i = 0; i < grades; i++) {
                    System.out.print("Enter grade " + (i + 1) + ": ");
                    array[i] = scan.nextInt();
                }
                average = average(array);
                System.out.println("The class average for the test is: " + average);
            }
        
            public static char average(int[] grades) {
                int sum = 0;
                for (int grade: grades) {
                    sum += grade;
                }
                int b = sum / grades.length;
        
                if (b >= 90) {
                    return 'A';
                } else if (b >= 80) {
                    return 'B';
                } else if (b >= 70) {
                    return 'C';
                } else if (b >= 60) {
                    return 'D';
                } else {
                    return 'F';
                }
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-14
          • 1970-01-01
          • 2020-09-27
          • 1970-01-01
          • 1970-01-01
          • 2015-04-22
          • 2018-05-31
          • 1970-01-01
          相关资源
          最近更新 更多