用户输入后剩余数组的总和

时间:2016-01-20 14:20:35

标签: java arrays

大家好我今天对这个程序有一些帮助,基本上我想要的是1到200的数组,然后用户输入1到200之间的数字。 然后将ramaning数字加在一起并输出答案。

e.g。用户输入100,然后将100-200的数字加在一起,然后输出答案。

到目前为止,我的代码总是输出0作为答案。有任何想法吗? 感谢。

//Importing scanner
import java.util.Scanner;
//Class name
class programfive{

    //Main method
    public static void main (String[]args){
        //declaring and inizialising scanner
        Scanner input = new Scanner (System.in);    
        //Declaring and inizialising variables 
        int userInput = 0;
        int sum = 0;
        //Array initializer
        int array[] = new int [201];
        //Prompt for user input
        System.out.print("Please enter a value between 1 and 200: ");
        userInput = input.nextInt();
        //For loop - starts at number user inputted, stops when reaches 200, increments by 1.
        for (int i = userInput; i<=200; i++)
        {
            sum += array[i];
        }
        System.out.println(sum);
    }//End of main method
}//End of class

4 个答案:

答案 0 :(得分:2)

因为您没有在数组中放置任何内容,所以它包含每个索引的默认int值,即0。

你必须用你想要的值填充它,这样数组[0]包含0,数组[1]包含1等。

int array[] = new int [201];

for(int i=0; i<array.length;i++)
    array[i] = i;

此外,您可以摆脱数组并获得相同的结果:

for (int i = userInput; i<=200; i++)
    {
        sum += i;
    }

答案 1 :(得分:1)

您需要先初始化数组,或将sum循环更改为:

for (int i = userInput; i<=200; i++)
{
    sum += i;
}

答案 2 :(得分:0)

未经测试但应该有效:

public static void main(String[]args) {
    Scanner input = new Scanner(System.in);    
    int userInput = 0;
    int sum = 0;
    System.out.print("Please enter a value between 1 and 200: ");
    userInput = input.nextInt();
    for (int i = userInput; i<=200; i++)
        sum += i
    userInput.close();
    System.out.println(sum);
}

答案 3 :(得分:0)

您忘记使用数字填充数组,目前所有数组元素都指向默认值0。

在数组声明之后添加这行代码,你的好处就是:

 for(int i=0;i<array.length;i++)
            array[i]=i;