我的任务是写一个程序来执行以下操作:
要求用户输入一个正整数n,从2到100 声明3个名为x,xsquared,xcubed的数组,其中每个数组最多可存储101个值。
然后使用“for”循环计算前n个整数,n个平方整数和n个立方整数的和。
EG:如果用户输入n = 5,那么1 + 2 + 3 + 4 + 5 = 15; 1 + 4 + 9 + 16 + 25 = 55;
1 + 8 + 27 + 64 + 125 = 225
最后,验证对于给定的n值,(n ^ 2 + n + 1)(n - 1)= n ^ 3 - 1
在我的程序中,我似乎收到错误说明
i is already defined in main(String[])
我的程序似乎没有任何总结或任何方格。为什么呢?
import java.util.Scanner;
public class ArraySquareCube
{
public static void main(String[] args)
{
double[] numbers = new double[101];
double sum = 0;
System.out.println("Enter a number from 0 through 100");
Scanner in = new Scanner(System.in);
int i = in.nextInt();
for (int i : numbers)
{
sum = sum + i;
}
for (int i = 0; i < numbers.length; i++)
{
numbers[i] = i*i;
}
}
}
答案 0 :(得分:2)
您是否阅读过该错误?
for (int i : numbers)
此时,i
已定义main(String[])
。它的定义如下:
int i = in.nextInt();
如果您可以编译程序,@ shantha指出您在将数字从0初始化为100之前对数字进行求和。
请注意0 * 0 = 0
和0 + x = x
,因此作为次要优化,您可以跳过0并为自己保存double
,并且new double[101]
来电会稍微好一些神奇的数字。
答案 1 :(得分:2)
错误是由于重新定义了这些int i
循环中的for
。我想指出在解决主要问题后你的结果为零的问题。
当你对
中定义的双数组求和时,总和为零double[] numbers = new double[101];
这是因为默认情况下原始类型double
被初始化为零。如果打印数组numbers
中的每个元素值,则每个元素值应为零。
默认情况下,您引用数字[i]的元素初始化为零。
所以在代码中
for (int i : numbers)
对于i
数组中的每个项,numbers
此处为零。 (因为每个double原语初始化默认为零)
如果使用非默认值或零值正确初始化numbers
数组,则可以看到数组元素的总和。
编辑:如果您相互更改for循环的位置,则总和应该有效。 喜欢:
for (int i = 0; i < numbers.length; i++)
{
numbers[i] = i*i;
}
for (int i : numbers)
{
sum = sum + i;
}
答案 2 :(得分:0)
你尝试在for-each循环和通常的for循环中使用i,但它已在
中定义 int i = in.nextInt();
所以编译器争辩说。
答案 3 :(得分:0)
import java.util.Scanner;
public class ArraySquareCube {
public static void main(String[] args){
double[] numbers = new double[101];
double sum = 0;
System.out.println("Enter a number from 0 through 100");
Scanner in = new Scanner(System.in);
int i = in.nextInt();
for (int j = 0; j <= i; j++){
sum = sum + j;
}
for (int c = 0; c < numbers.length; c++){
numbers[c] = c*c;
}
}
}
我相信你正在寻找的东西。
答案 4 :(得分:0)
编译时,有两个错误。首先是
for(int i : numbers)
...
for(int i = 0; ...)
表示重复的变量“i”。
其次是
for(int i : numbers)
而“numbers”是double的数组,“i”是int,表示类型不匹配。
所以代码甚至无法编译。
2.您需要声明3个数组。所以只要声明它们。我只在你的代码中看到一个数组。
3.使用用户输入的整数。使用另一个计数器来帮助计算,而不是“我”本身。
自己尝试一下,如果遇到其他问题,请回来。
PS:我建议你使用一个好的IDE,比如Eclipse。它会在编辑时指示您出现此类错误。