当用户输入10个数字时显示最小数字的困难

时间:2016-07-20 06:20:13

标签: java while-loop

程序要求用户输入10个数字,并且应该显示用户输入的所有10个数字中的最小数字。这是我的代码:

import java.util.Scanner;
  public class SmallestNumber {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner input=new Scanner(System.in);

    int counter=10;
    int smallest=0; 
    int number;

    System.out.println("Enter a number");


    while(counter>0)
    {
        System.out.println("Enter a number");
        number=input.nextInt();

    if(number<smallest)
        //stores number to largest
        smallest=number;
        //decrement counter
        counter=counter-1;}

        System.out.println("Smallest number is "+smallest);




 }}

我做错了什么

6 个答案:

答案 0 :(得分:0)

int smallest=0;

应该改变。

你最初应该把它设置成一个大号,比如     int smallest = Integer.MAX_VALUE;

答案 1 :(得分:0)

我假设您的'最小'数字始终为0.这是因为它从0开始,没有输入会小于此值(除非用户输入负数)。

将您的代码更改为最小等于第一个用户输入,并且对于每个后续输入,请针对该值进行测试。

import java.util.Scanner;
public class SmallestNumber {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);

int counter=10;
int smallest; 
int number;

System.out.println("Enter a number");


while(counter>0)
{
    System.out.println("Enter a number");
    number=input.nextInt();

    if (counter == 10)
    {
        smallest = number;
    }
    else
    {
        if(number<smallest)
        //stores number to largest
        smallest=number;
    }
    //decrement counter
    counter=counter-1;}

    System.out.println("Smallest number is "+smallest);
 }}

答案 2 :(得分:0)

我认为你的问题是你已经从最小= 0开始。这样,用户需要输入小于0的数字,使其小于初始值。

你应该使用一个非常大的数字初始化最小值(比如int smallest = Integer.MAX_VALUE;)

答案 3 :(得分:0)

首先将System.out.println放在while循环的一边。

其次,如果您正在考虑从10个输入数字中评估最小数字,那么改变逻辑。

首先接受第一个输入并将其存储在最小的输入中。

将计数器设置为9.类似于:

import java.util.Scanner;
public class SmallestNumber {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);

int counter=9;
int smallest; 
int number;

System.out.println("Enter a number");
smallest=input.nextInt();

while(counter>0)
{
    System.out.println("Enter a number");
    number=input.nextInt();

    if(number<smallest)
    //stores number to largest
    smallest=number;

    //decrement counter
    counter=counter-1;}
}
System.out.println("Smallest number is "+smallest);
}

答案 4 :(得分:0)

这个有效

import java.util.Scanner;
public class SmallestNumber {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);

int counter=10;
int smallest=0; 
int number;

//System.out.println("Enter a number");


while(counter>0)
{
    System.out.println("Enter a number");
    number=input.nextInt();
    if (counter==10)
        smallest=number;


if(number<smallest)
    //stores number to largest
    smallest=number;
    //decrement counter
    counter=counter-1;}

    System.out.println("Smallest number is "+smallest);




 }}

答案 5 :(得分:0)

尝试此算法。

while(counter>0)
    {
        System.out.println("Enter a number");
        number=input.nextInt();

        if(counter==10)
            smallest=number;

        else{

            if(number<smallest){ 
               smallest=number;
               counter=counter-1;
            }
        }
 }

  System.out.println("Smallest number is "+smallest);