大家好我练习Java语言。我遇到了这个问题。我是这种语言的初学者。我在拼贴画中研究它。这是问题所在。
"创建一个将导出数字之和的java程序。例如,输入5将产生(1 + 2 + 3 + 4 + 5 = 15)"
我知道答案,但我试图以另一种方式解决它。
public class Sum11 {
static int i;
static int[] S = new int[5];
static int j;
static int Sum = 0;
Sum11(int i,int S[],int j){
this.S=S;
this.i=i;
this.j=j;
}
public static void main(String[] args){
Scanner s1 = new Scanner(System.in);
for(i=1;i<=5;i++){
System.out.println("Enter FIve Number");
S[i]= s1.nextInt();
}
for(int num : S){
Sum = Sum+num;
}
System.out.println("The Result IS: "+Sum);
}
}
答案 0 :(得分:1)
java中的数组索引从0开始,所以你的输入循环应该是:
System.out.println("Enter Five Numbers");
for(i=0;i<S.length;i++) {
S[i]= s1.nextInt();
}
答案 1 :(得分:1)
5个元素数组中数组索引S[5]
的问题是一个问题。
另一个问题是我认为你误解了这个练习。
&#34;创建一个将导出数字之和的java程序。例如,输入5将产生(1 + 2 + 3 + 4 + 5 = 15)&#34;
它要求&#34; 号&#34;而不是&#34;号码 s &#34; 似乎输入是一个数字,例如数字5。
使用循环的解决方案可以是例如:
int num = scanner.nextInt();
int sum = 0;
for (int i = 1; i <= num; ++i) {
sum += i;
}
还有一个简单公式的数学解决方案:
int num = scanner.nextInt();
int sum = num * (num + 1) / 2;
答案 2 :(得分:0)
数组S
初始化为:
static int[] S = new int[5];
然后在main
函数中,从1循环到5:
for(i=1;i<=5;i++){ System.out.println("Enter FIve Number"); S[i]= s1.nextInt(); }
尝试在索引1,2,3,4,5处设置值。 但是在Java数组中,0是基于0的, 所以这个例子中的索引应该是0,1,2,3,4。
你很容易出现这样的问题,因为S
被声明并初始化到远离实际使用的地方。
而你实际上并不需要它。
你可以动态计算总和,
没有摸索阵列:
int sum = 0;
for(i=1;i<=5;i++){
System.out.println("Enter FIve Number");
sum += s1.nextInt();
}
答案 3 :(得分:0)
Java数组的起始索引为0。 你必须:
for(i=0;i<5;i++){