How do I fix the code? Code: import java.util.Scanner; public class Grades { static int count = 0; public static int readGrades() { int grade,count = 0; Scanner input = new Scanner(System.in); grade = input.nextInt(); return grade; } public static int sum(int[] arr) { int sum = 0; for (int i = 0; i < arr.length; i++) sum = sum + arr[i]; return sum; } public static int sum(int[] arr, int firstIndex, int lastIndex) { if (firstIndex < 0 || lastIndex >= arr.length || lastIndex >= firstIndex || firstIndex >= arr.length || lastIndex < 0 || firstIndex < lastIndex) { return -666; } int sum = 0; for (int i = firstIndex; i <= lastIndex; i++) sum = sum + arr[i]; return 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) { if (firstIndex < 0 || lastIndex >= arr.length || lastIndex >= firstIndex || firstIndex >= arr.length || lastIndex < 0 || firstIndex < lastIndex) { return -666; } 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) { if (firstIndex < 0 || lastIndex >= arr.length || lastIndex >= firstIndex || firstIndex >= arr.length || lastIndex < 0 || firstIndex < lastIndex) { return -666; } 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; System.out.println("Enter a grade : "); while ( i < 5) { grade[i] = readGrades(); if (grade[i] == -1) { break; } else { i++; count++; } } System.out.println("Number of grades: " + count); //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)); }
How do I fix the code?
Code:
import java.util.Scanner;
public class Grades {
static int count = 0;
public static int readGrades() {
int grade,count = 0;
Scanner input = new Scanner(System.in);
grade = input.nextInt();
return grade;
}
public static int sum(int[] arr) {
int sum = 0;
for (int i = 0; i < arr.length; i++)
sum = sum + arr[i];
return sum;
}
public static int sum(int[] arr, int firstIndex, int lastIndex) {
if (firstIndex < 0 || lastIndex >= arr.length || lastIndex >= firstIndex || firstIndex >= arr.length || lastIndex < 0 || firstIndex < lastIndex) {
return -666;
}
int sum = 0;
for (int i = firstIndex; i <= lastIndex; i++)
sum = sum + arr[i];
return 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) {
if (firstIndex < 0 || lastIndex >= arr.length || lastIndex >= firstIndex || firstIndex >= arr.length || lastIndex < 0 || firstIndex < lastIndex) {
return -666;
}
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) {
if (firstIndex < 0 || lastIndex >= arr.length || lastIndex >= firstIndex || firstIndex >= arr.length || lastIndex < 0 || firstIndex < lastIndex) {
return -666;
}
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;
System.out.println("Enter a grade : ");
while ( i < 5) {
grade[i] = readGrades();
if (grade[i] == -1)
{
break;
}
else {
i++;
count++;
}
}
System.out.println("Number of grades: " + count);
//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));
}
}
![**Testing `Grades.sum(int[] arr, int firstIndex, int lastIndex)` with `firstIndex < 0`:**
- **Your output:**
Incorrect indexes entered.
- **Test feedback:**
The method `Grades.sum(int[] arr, int firstIndex, int lastIndex)` is not properly checking `firstIndex < 0`.](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Fecfe1b28-5736-4fb7-bb45-1ff6972df94e%2F25e0b59a-acc9-401c-a6fe-3cd48cca2443%2Fpas94fs_processed.png&w=3840&q=75)
![**Testing Scenario**
This test evaluates the `Grades.sum(int[] arr, int firstIndex, int lastIndex)` method by checking the condition where `firstIndex >= arr.length`.
**Expected Output:**
- The method should handle incorrect index entries properly.
**Your Output:**
- Message: "Incorrect indexes entered."
**Test Feedback:**
- Error Message: "***** Error ***** Grades.sum(int[] arr, int firstIndex, int lastIndex) invoked with invalid indexes."
**Explanation:**
The test checks if the method correctly identifies and handles cases where the starting index (`firstIndex`) is beyond or equal to the length of the array, which is an invalid scenario for array operations. The feedback suggests that there was an error due to invalid index parameters used in the method call.](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Fecfe1b28-5736-4fb7-bb45-1ff6972df94e%2F25e0b59a-acc9-401c-a6fe-3cd48cca2443%2F2kpnbd5_processed.png&w=3840&q=75)
![](/static/compass_v2/shared-icons/check-mark.png)
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 12 images
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)