无法弄清楚我的错误数字

时间:2016-11-24 02:32:11

标签: java arrays netbeans

我是JAVA和Net beans的新手。这就是我要做的事情:创建一个存储数字0,1,2和2的平方的程序。 9个在10个元素的ArrayList中。

例如,索引为2的第三个元素应存储4.

然后程序应该使用循环来显示数组中的每个元素,如下所示。

这是我的代码:

double[] nums  = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};     
double[] squares = (nums);     
for (int i = 0; i < nums.length ; i++)     
    nums[i]= i + 1;      
for (int i = 0; i < nums.length ; i++)     
    nums[i]=nums[i] * nums[i];     
System.out.println("Squares Arraylist");    
for (int i = 0; i < nums.length ; i++ )     
    System.out.println ("Number: "+i+  "\t Square:" + squares[i]);

这是我得到的输出:

Squares Arraylist     
Number: 0    Square:1.0      
Number: 1    Square:4.0      
Number: 2    Square:9.0     
Number: 3    Square:16.0      
Number: 4    Square:25.0      
Number: 5    Square:36.0    
Number: 6    Square:49.0     
Number: 7    Square:64.0    
Number: 8    Square:81.0     
Number: 9    Square:100.0

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:0)

您更喜欢更正注释行吗?

for(int i = 0; i < nums.length ; i++ )     
  //nums[i]= i + 1;   -> here you went wrong
  nums[i]= i ;
  for(int i = 0; i < nums.length ; i++ )     
  nums[i]=nums[i] * nums[i];    

答案 1 :(得分:0)

删除此循环

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

因为nums引用已经在我们初始化时保存了数组数据,同时声明它nums = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

并将数组数据类型设置为int,除非我们需要它,因为它占用更多内存

int[] nums = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; int[] squares = (nums);

答案 2 :(得分:0)

我认为您在更改数据之前会对其进行更改:

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

不知道你为什么这样做。但这是您的程序从

更改数组列表的值的地方
  

0 1 2 3 4 5 6 7 8 9到

     

1 2 3 4 5 6 7 8 9 10.

因此,当你对它进行平方时,你会得到更新列表的方块和错误的解决方案。注释掉这两行并再次检查,希望你能得到正确的解决方案。

答案 3 :(得分:0)

你的问题:

  • 请勿使用double,请使用int。你正在处理小整数
  • 不要为每个元素添加1
  • 不要初始化数组

在伪代码中:

  • 声明一个大小为10的int数组
  • 对于数组的每个索引
    • 将索引的平方分配给该索引处的元素

在代码中,Java 7:

int[] squares = new int[10];
for (int i = 0; i < squares.length; i++)
    squares[i] = i * i;

和Java 8:

int[] squares = IntStream.range(0, 10).map(i-> i * i).toArray();

注意:我不知道你为什么要打印&#34; ArrayList&#34 ;;你没有。你有一个阵列。非常不同。