Click here to Skip to main content
12,952,273 members (43,415 online)
Rate this:
 
Please Sign up or sign in to vote.
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 12:32pm
Updated 10-Nov-12 13:23pm
TorstenH.34.9K
v2
Comments
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.

1 solution

Rate this: bad
 
good
Please Sign up or sign in to vote.

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".
  Permalink  
Comments
   
5ed.
--SA

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month
OriginalGriff 6,239
CHill60 3,490
Maciej Los 3,083
Jochen Arndt 1,975
ppolymorphe 1,880


Advertise | Privacy | Mobile
Web02 | 2.8.170525.1 | Last Updated 10 Nov 2012
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100