12,063,278 members (61,631 online)
Rate this:
See more:
when i trace the code im getting 1,3,5,7 for the answer but the compiler prints 1,3,6,10
im having trouble understanding how this happens could anyone explain

```int [] a= new int[5];  // create array
for (int i =1; i<=4; i++)
{
a[i]=a[i-1]+i;
System.out.print(a[i]+" ");
}```
Posted 10-Nov-12 13:32pm
Edited 10-Nov-12 14:23pm
TorstenH.34.8K
v2
Nelek 10-Nov-12 18:44pm

What I can not understand is where you get 1,3,5,7. The result of this code is what the compiler prints.

Rate this:

## Solution 1

when i trace the code

You debug it. While debugging you figure several operations in one line:

```for (int i =1; i<=4; i++)
{
a[i]=a[i-1]+i;
System.out.print(a[i]+" ");
}
```

should be

```for (int i =1; i<=4; i++)
{
int iNumber = a[i-1]; // get number of previous field
iNumber += i; // add counter
a[i]=iNumber; // place result
System.out.print(a[i]+" ");
}
```

This way you can figure every step and see that the output if this is "1 3 6 10".

5ed.
--SA

Top Experts
Last 24hrsThis month
 Dave Kreskowiak 337 CHill60 300 d@nish 175 Richard MacCutchan 145 Chris Maunder 135
 Dave Kreskowiak 1,827 Richard MacCutchan 1,225 d@nish 980 OriginalGriff 800 Sergey Alexandrovich Kryukov 733