使用数组查找最大和最小数字

时间:2014-11-16 03:54:31

标签: java

尝试让用户输入整数数,这样我就可以设置数组长度,然后找到最大值和最小值。但是,我无法找到最大值和最小值。请帮忙。

import java.util.Scanner;
import java.util.Arrays;
public class ExerciseC{
    public static void main(String[] args){
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Enter the number of integers you would like to enter:");
        int numberEnter = keyboard.nextInt();
        System.out.println("Enter some integers:");
        int integers = keyboard.nextInt();
        int numbers [] = new int [numberEnter];
        int maxValue = numbers[0];
        int minValue = numbers[0];
        int max = 0;
        int min = 0;
        for (int index = 1; index < numbers.length; index ++) {
            if (numbers[index] > maxValue) {
                maxValue = numbers [index];
            }
        }
        System.out.println("Print: " + maxValue);
        System.out.println("The difference between the largest and the smallest is: ");
    }

}

3 个答案:

答案 0 :(得分:1)

您的numbers[]为空。用户的输入不存储在数组中。

这是您的固定代码:

package com.company;

import java.util.Scanner;

public class ExerciseC{
    public static void main(String[] args){
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Enter the number of integers you would like to enter:");
        int numberEnter = keyboard.nextInt();
        int numbers [] = new int [numberEnter];
        for (int i = 0; i < numberEnter; i++) {
            System.out.println("Enter integer:");
            numbers[i] = keyboard.nextInt();
        }
        int maxValue = numbers[0];
        int minValue = numbers[0];
        for (int index = 1; index < numbers.length; index ++) {
            if (numbers[index] > maxValue) {
                maxValue = numbers [index];
            }
        }
        System.out.println("Print: " + maxValue);
        System.out.println("The difference between the largest and the smallest is: ");
    }

}

答案 1 :(得分:1)

您似乎没有输入超过一个值(并且您永远不会在您的数组中存储integers)。此外,你没有设置分钟。我想你想要

public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Number of integers to enter:");
    int numberEnter = keyboard.nextInt();
    int numbers[] = new int[numberEnter];
    int pos = 0;
    do {
        System.out.printf("Please enter integer #%d/%d:%n", pos, numberEnter);
        numbers[pos++] = keyboard.nextInt();
    } while (pos < numberEnter && keyboard.hasNextInt());
    int min = numbers[0];
    int max = numbers[0];
    for (pos = 1; pos < numbers.length; pos++) {
        if (numbers[pos] < min) { // <-- test min.
            min = numbers[pos];
        }
        if (numbers[pos] > max) { // <-- test max.
            max = numbers[pos];
        }
    }
    // Display everything.
    System.out.printf("%s Min: %d Max: %d%n", Arrays.toString(numbers),
            min, max);
}

答案 2 :(得分:0)

    import java.util.Scanner;
    class StdR {
public static void main(String[] args) {
        // TODO Auto-generated method stub

        StdR st = new StdR();
        st.stdR();
        //System.out.println(st.stdR();
    }
        void stdR()
        {
            char[] grade = {'A','B','C','D','E','F'};
            Scanner input = new Scanner(System.in);
            byte[] st = new byte[3];
            double[] percentage = new double[st.length];

            for(byte s = 0; s < st.length; s++){
                System.out.println("\nStudent " + s);
                short noOfMarks = 0;
                short totalMarks = 450;
                percentage[s] = 0.0;
                byte[] marks = new byte[5];

                for (byte i = 0; i < marks.length; i++){

                    System.out.println("Enter marks of Chapter "+ i + ": ");
                    marks[i] = input.nextByte();

                    noOfMarks += marks[i];
                    percentage[s] += (marks[i] * 100) / totalMarks;
                }

                System.out.print("No of marks: " + noOfMarks + "\t");
                System.out.print("Percentage: " + percentage[s] + "\t");
                if (percentage[s] > 79.0 && percentage[s] < 100.1)
                    System.out.print("Grade: " + grade[0]);
                else if (percentage[s] > 69.0 && percentage[s] < 80.0)
                    System.out.print("Grade: " + grade[1]);
                else if (percentage[s] > 59.0  && percentage[s] < 70.0)
                    System.out.print("Grade: " + grade[2]);
                else if (percentage[s] > 49.0 && percentage[s] < 60.0)
                    System.out.print("Grade: " + grade[3]);
                else if (percentage[s] > 39.0  && percentage[s] < 50.0)
                    System.out.print("Grade: " + grade[4]);
                else if (percentage[s] < 40.0)
                    System.out.print("Grade: " + grade[5]);
            }
            double smallest = percentage[0] , largest= percentage[0];

            for (int i=0 ;i< percentage.length; i++) {
                if (percentage[i] < smallest) {
                    smallest = percentage[i];
                } // end finding smallest
                if (percentage[i] > largest) {
                    largest = percentage[i];
                } 

            }
            System.out.println("\n1st Position and Top percentage is " + largest);
            System.out.println("\nLast Position and Least percentage is "+smallest);
        }
    }
相关问题