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)); } }
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));
}
}
Step by step
Solved in 3 steps with 5 images