设置用户输入的数字并将其保存在数组中

时间:2014-11-07 07:48:21

标签: java arrays

我必须使用for循环将用户输入的10个数字保存到数组中。之后,我必须使用增强的for循环来查找数组中的最大值和最小值。我不知道如何在数组中保存数字。我也有问题从数组中找到最小和最大的值并显示它们。我在设置forhighestvalue的{​​{1}}循环部分出错了。

这是我的代码:

lowestvalue=inputnumber

5 个答案:

答案 0 :(得分:0)

更改

number[inputNumber] = inputNumber;

number[counter] = inputNumber;

您希望将每个新数字添加到数组的counter位置。

至于找到最小值,最大值。读取数组输入的相同循环可以做到这一点。将largestNumber初始化为Integer.MIN_VALUE,将smallestNumber初始化为Integer.MAX_VALUE。然后,每次获得新号码时,请将其与largestNumbersmallestNumber进行比较,如果新号码分别更高/更低,则更新它们。

答案 1 :(得分:0)

替换

number[inputNumber] = inputNumber;

number[counter] = inputNumber;

就是这样。至于查找mix和max,请在阵列上使用Collections.sort()。第一个元素是min,最后一个元素是

答案 2 :(得分:0)

make the following changes


        //create a scanner object
        Scanner input= new Scanner (System.in);
        //declare largestNumber
        int largestNumber;
        //declare smallestNumber
        int smallestNumber ;
        //declare inputNumber
        int inputNumber = 0;
        //declare array named number and set it to 10
        int[] number = new int[10];

        //display message
        System.out.print ("Enter an integer: ");
        //column headings

        for (int counter = 0; counter < number.length; counter++)  
        {
            //set number equal to next input   
            inputNumber = input.nextInt();
            number[counter] = inputNumber;

// for loop that will check for largest and smallest no



        }
         smallestNumber = number[0];
         largestNumber = number[0];

        for(int i=1; i< number.length; i++)
        {
                if(number[i] > largestNumber)
                    largestNumber = number[i];
                else if (number[i] < smallestNumber)
                        smallestNumber = number[i];

        }

      //  System.out.printf("%s%8s\n", "index", "value"); 
      //  System.out.printf("%5d%8d\n", counter, number[inputNumber]);
        System.out.printf("The largest value in the array is %d\nThe smallest value in the array is %d\n", largestNumber, smallestNumber);

另外:你不能以这种方式使用for循环

for (number[inputNumber]>=largestNumber && number[inputNumber]>=smallestNumber)

这是一个条件案例而非循环

答案 3 :(得分:0)

假设您不必按照用户输入的顺序存储数字,您可以进行排序插入。这意味着,对于输入的每个值,在维护排序数组的同时找到可插入此数字的索引(如果此索引处存在数字,则必须将其移动到右侧

提供了一个排序数组,你可以在O(1)中找到min和max: min =数字[0]; max = number [n-1];

答案 4 :(得分:0)

我建议你尝试一下。让我知道它是否有效。: -

import java.util.Scanner;

public class Practice {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int num[]=new int[10];
int max=0,min=0;
for(int i=0;i<10;i++){
   System.out.println("Enter number:-");
   num[i]=in.nextInt();

   if(num[i]>=max)
   max=num[i];
   if(num[i]<=min)
   min=num[i];
}
min=num[0];
for(int i=0;i<10;i++){
    if(num[i]<=min)
    min=num[i];
}
System.out.println("The array elements are:-");
for(int i=0;i<10;i++)
System.out.print(num[i]+"  ");
System.out.println();
System.out.println("Largest is:-"+max+" "+"Smallest is:"+min);
}
}