How do I handle the case when the user enters an index that is negative, or lastindex > firstindex? java code: import java.util.Scanner; public class Grades { static int count = 0; public static int readGrades() { int grade,count = -1; Scanner input = new Scanner(System.in); System.out.println("Enter a grade : "); grade = input.nextInt(); return grade; } public static int sum(int[] arr) { int grade_sum = 0; for (int i = 0; i < arr.length; i++) grade_sum = grade_sum + arr[i]; return grade_sum; } public static int sum(int[] arr, int firstIndex, int lastIndex) { int grade_sum = 0; for (int i = firstIndex; i <= lastIndex; i++) grade_sum = grade_sum + arr[i]; return grade_sum; } public static double average(int[] arr) { double sum = sum(arr); return ((float) sum / (float) (arr.length)); } public static int maxValue(int[] arr) { int max = 0; for (int i = 0; i < arr.length; i++) { if (max < arr[i]) { max = arr[i]; } } return max; } public static int maxValue(int[] arr, int firstIndex, int lastIndex) { int max = 0; for (int i = firstIndex; i <= lastIndex; i++) { if (max < arr[i]) { max = arr[i]; } } return max; } public static int indexOfFirstMaxValue(int[] arr) { int max = 0; for (int i = 0; i < arr.length; i++) { if (maxValue(arr) == arr[i]) { max = i; } } return max; } public static int minValue(int[] arr) { int min = arr[0]; for (int i = 1; i < arr.length; i++) { if (min > arr[i]) { min = arr[i]; } } return min; } public static int minValue(int[] arr, int firstIndex, int lastIndex) { int min = arr[0]; for (int i = firstIndex; i <= lastIndex; i++) { if (min > arr[i]) { min = arr[i]; } } return min; } public static int indexOfFirstMinValue(int[] arr) { int min = 0; for (int i = 0; i < arr.length; i++) { if (minValue(arr) == arr[i]) { min = i; } } return min; } public static int numberOfBelowAverageElements(int[] arr) { int count = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] < average(arr)) { count++; } } return count; } public static int numberOfAboveAverageElements(int[] arr) { int count = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] > average(arr)) { count++; } } return count; } public static void rotateElements(int[] arr) { int i, temp; temp = arr[0]; for (i = 0; i < arr.length - 1; i++) { arr[i] = arr[i + 1]; } arr[arr.length - 1] = temp; System.out.print("\nRotated array is: \n"); for (int k = 0; k < arr.length; k++) { System.out.print(arr[k] + " "); } } public static void rotateElements(int[] arr, int rotationCount) { for (int i = 0; i < rotationCount; i++) rotateElements(arr); System.out.print("\nRotated array is: \n"); for (int k = 0; k < arr.length; k++) { System.out.print(arr[k] + " "); } } public static void reverseArray(int[] arr) { int n = arr.length; int[] b = new int[n]; int j = n; for (int i = 0; i < n; i++) { b[j - 1] = arr[i]; j = j - 1; } System.out.print("\nReversed array is: \n"); for (int k = 0; k < n; k++) System.out.print(b[k] + " "); } public static void main(String[] args) { int grade[] = new int[5]; int i = 0; // while loop terminating condition while ( i < 5) { grade[i] = readGrades(); if (grade[i] == -1) { break; } else { i++; count++; } } System.out.println("Number of grades: " + count); //while calling the following functions, //take care of the firstIndex and lastIndex parameters [0, count-1] System.out.println("The maximum grades is: " + maxValue(grade, 0, count-1)); System.out.println("The minimum grades is: " + minValue(grade, 0, count -1)); } }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

How do I handle the case when the user enters an index that is negative, or lastindex > firstindex? java

code:

import java.util.Scanner;

public class Grades {

    static int count = 0;

    public static int readGrades() {
        int grade,count = -1;
        Scanner input = new Scanner(System.in);
        System.out.println("Enter a grade : ");
        grade = input.nextInt();
        return grade;
    }

    public static int sum(int[] arr) {
        int grade_sum = 0;
        for (int i = 0; i < arr.length; i++)
            grade_sum = grade_sum + arr[i];
        return grade_sum;
    }

    public static int sum(int[] arr, int firstIndex, int lastIndex) {
        int grade_sum = 0;
        for (int i = firstIndex; i <= lastIndex; i++)
            grade_sum = grade_sum + arr[i];
        return grade_sum;
    }

    public static double average(int[] arr) {
        double sum = sum(arr);
        return ((float) sum / (float) (arr.length));
    }

    public static int maxValue(int[] arr) {
        int max = 0;
        for (int i = 0; i < arr.length; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }
        return max;
    }

    public static int maxValue(int[] arr, int firstIndex, int lastIndex) {
        int max = 0;
        for (int i = firstIndex; i <= lastIndex; i++) {
            if (max < arr[i]) {
                max = arr[i];
            }
        }
        return max;
    }

    public static int indexOfFirstMaxValue(int[] arr) {
        int max = 0;
        for (int i = 0; i < arr.length; i++) {
            if (maxValue(arr) == arr[i]) {
                max = i;
            }
        }
        return max;
    }

    public static int minValue(int[] arr) {
        int min = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (min > arr[i]) {
                min = arr[i];
            }
        }
        return min;
    }

    public static int minValue(int[] arr, int firstIndex, int lastIndex) {
        int min = arr[0];
        for (int i = firstIndex; i <= lastIndex; i++) {
            if (min > arr[i]) {
                min = arr[i];
            }
        }
        return min;
    }

    public static int indexOfFirstMinValue(int[] arr) {
        int min = 0;
        for (int i = 0; i < arr.length; i++) {
            if (minValue(arr) == arr[i]) {
                min = i;
            }
        }
        return min;
    }

    public static int numberOfBelowAverageElements(int[] arr) {
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < average(arr)) {
                count++;
            }
        }
        return count;
    }

    public static int numberOfAboveAverageElements(int[] arr) {
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > average(arr)) {
                count++;
            }
        }
        return count;
    }

    public static void rotateElements(int[] arr) {
        int i, temp;
        temp = arr[0];
        for (i = 0; i < arr.length - 1; i++) {
            arr[i] = arr[i + 1];
        }
        arr[arr.length - 1] = temp;
        System.out.print("\nRotated array is: \n");
        for (int k = 0; k < arr.length; k++) {
            System.out.print(arr[k] + " ");
        }
    }

    public static void rotateElements(int[] arr, int rotationCount) {
        for (int i = 0; i < rotationCount; i++)
            rotateElements(arr);
        System.out.print("\nRotated array is: \n");
        for (int k = 0; k < arr.length; k++) {
            System.out.print(arr[k] + " ");
        }
    }

    public static void reverseArray(int[] arr) {
        int n = arr.length;
        int[] b = new int[n];
        int j = n;
        for (int i = 0; i < n; i++) {
            b[j - 1] = arr[i];
            j = j - 1;
        }
        System.out.print("\nReversed array is: \n");
        for (int k = 0; k < n; k++)
            System.out.print(b[k] + " ");
    }

    public static void main(String[] args) {
        int grade[] = new int[5];
        int i = 0;
        // while loop terminating condition
        while ( i < 5) {
            grade[i] = readGrades();
            if (grade[i] == -1)
               {
                   break;
               }
            else {
                i++;
                count++;
            }
        }

        System.out.println("Number of grades: " + count);
       
        //while calling the following functions,
        //take care of the firstIndex and lastIndex parameters [0, count-1]
        System.out.println("The maximum grades is: " + maxValue(grade, 0, count-1));
        System.out.println("The minimum grades is: " + minValue(grade, 0, count -1));

    }
}

Expert Solution
steps

Step by step

Solved in 3 steps with 5 images

Blurred answer
Knowledge Booster
Random access
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education