我的任务是取十个用户输入数字的数组,然后找到最低和最高的数字。
我是根据课堂笔记完成的,但它不适用于netbeans。
import static java.lang.System.in;
import java.util.Scanner;
public class FindLargestSmallestNumber {
public static void main(String[] args) {
//array of 10 numbers
int numbers[] = new int[]{0,0,0,0,0,0,0,0,0,0};
int i=0;
for(int x=1; x<numbers.length; i++)
{
Scanner user_input = new Scanner( System.in );
System.out.println ("What is the "+ x +" number of the array");
numbers [x] = in.nextInt( );
}
//assign first element of an array to largest and smallest
int smallest = numbers[0];
int largest = numbers[0];
for(i=1; i< numbers.length; i++)
{
if(numbers[i] > largest)
largest = numbers[i];
else if (numbers[i] < smallest)
smallest = numbers[i];
}
System.out.println("Largest Number is : " + largest);
System.out.println("Smallest Number is : " + smallest);
}
}
答案 0 :(得分:2)
数组索引从0开始
for for循环从index = 0开始到index&lt; 10
import java.util.*;
class MAXIMUMorMINIMUM{
public static void main(String args[] ){
Scanner in = new Scanner(System.in);
//array of size 10
int N = 10;
int array[] = new int[N];
for(int i = 0; i < N ;i ++){
array[i] = in.nextInt();
}
int maximum = array[0];
int minimum = array[0];
for(int i = 0; i < N; i++){
//maximum
if(array[i] > maximum){
maximum = array[i];
}
//minimum
if (array[i] < minimum) {
minimum = array[i];
}
}
System.out.println("MAXIMUM : "+maximum);
System.out.println("MINIMUM : "+minimum);
}
}
答案 1 :(得分:1)
您的问题是,您在for循环中递增i
而在第一个for循环中递增x
。这使得它与x==1
一起永远运行。每次循环代码运行时,您都会更改i
,这对循环条件x<numbers.length
没有影响。
由于您从x
开始索引数组,因此您还希望0
而不是1
启动0
。
此外,for循环in
内部实际上是System.in
,因为您静态导入它。你应该写user_input.nextInt()
,因为那是Scanner
你做的。这种事情对你来说应该是显而易见的,特别是如果你使用的IDE会像netbeans一样突出你的东西。
答案 2 :(得分:0)
守则应该是
public static void main(String[] args) {
//array of 10 numbers
int [] numbers = {0,0,0,0,0,0,0,0,0,0};
for(int x=0; x<numbers.length; x++)
{
Scanner user_input = new Scanner( System.in );
System.out.println ("What is the "+ x +" number of the array");
numbers [x] = user_input.nextInt();
}
//assign first element of an array to largest and smallest
int smallest = numbers[0];
int largest = numbers[0];
for(i=1; i< numbers.length; i++)
{
if(numbers[i] > largest)
largest = numbers[i];
else if (numbers[i] < smallest)
smallest = numbers[i];
}
System.out.println("Largest Number is : " + largest);
System.out.println("Smallest Number is : " + smallest);
}
当您创建扫描程序对象并需要使用它来从用户获取Input对象时 同样要实例化一个数组,你可以像上面一样调用它,或者像下面那样:
int[] numbers = new int [10];
此外,数组索引从0开始,而不是1