• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 350
  • Last Modified:

Stacks

please explain to me how this for statement works:

assuming that stack is a class with stack type set to int and stack capacity to 5.  Give the content of myTop and myArray data memebers of s after code segment has been executed.

Stack s;
for (int i = 0; i<5; i++)  //please help me in this step, what is the first value of i
s.push(2*i);    //what are the values of all the i's please help me.
   s.pop();
   s.pop();

the answer according to my professor is myTop = 2 and myArray is 0, 2, 4, 6 but please help me understand why it is so. i had this question on an exam and i need to understand it.  
0
needle176
Asked:
needle176
1 Solution
 
lwinkenbCommented:
If you were going to put that for loop into english, it would sound like:
set an integer 'i' equal to 0.  while 'i' is less than 5 run the corresponding body, and add 1 to 'i' after each iteration through the loop.

So basically the for loop in your example runs 5 times.  The first time i is equal to 0, then 1, then 2, until it reaches 4.  When i is equal to 5 it wont run because the condition in the for loop says to run while i<5.

since you are pushing 2*i onto the stack, you will basically push the values 0, 2, 4, 6, 8.  Then the last two commands will pop 8, and 6 from the stack.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now