大家好我今天对这个程序有一些帮助,基本上我想要的是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
答案 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;