Having problem with array in for loop...

Please support our C++ advertiser: Intel Parallel Studio Home
Reply

Join Date: Oct 2008
Posts: 2
Reputation: JoeRoss578 is an unknown quantity at this point 
Solved Threads: 0
JoeRoss578 JoeRoss578 is offline Offline
Newbie Poster

Having problem with array in for loop...

 
0
  #1
Oct 16th, 2008
I did fine on this in C, not sure what I'm doing wrong here. Probably something silly on my end. I'm receiving odd numbers in my program below. I have included the output below the program. Any assistance would be quite appreciated. Thanks!

  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5. using namespace std;
  6. int exercise[5], i;
  7.  
  8. cin >> exercise[0];
  9.  
  10. for (i = 0; i < 5; i++)
  11. {
  12. cout << exercise[i] << endl;
  13. }
  14.  
  15. return 0;
  16.  
  17. }

------------------------------------
I enter the numbers 1, 2, 3, 4, and 5 in the beginning. I am expecting the Output to be:

1 2 3 4 5
1
2
3
4
5
Press any key to continue...

but instead, the output is:

1 2 3 4 5
1
4313739
4313508
4313739
4268019
Press any key to continue . . .
Last edited by JoeRoss578; Oct 16th, 2008 at 4:16 pm.
Reply With Quote Quick reply to this message  
Join Date: Sep 2004
Posts: 7,728
Reputation: Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute 
Solved Threads: 737
Team Colleague
Narue's Avatar
Narue Narue is offline Offline
Code Goddess

Re: Having problem with array in for loop...

 
1
  #2
Oct 16th, 2008
You only fill exercise[0]. Perhaps this would work better for you:
  1. for (i = 0; i < 5; i++)
  2. {
  3. cin >> exercise[i];
  4. cout << exercise[i] << endl;
  5. }
I'm here to prove you wrong.
Reply With Quote Quick reply to this message  
Join Date: Oct 2008
Posts: 2
Reputation: JoeRoss578 is an unknown quantity at this point 
Solved Threads: 0
JoeRoss578 JoeRoss578 is offline Offline
Newbie Poster

Re: Having problem with array in for loop...

 
0
  #3
Oct 16th, 2008
Ah, I understand now. I thought it might have something to do with that, but my professor didn't explain it very well in class last night. Thanks!
Reply With Quote Quick reply to this message  
Join Date: Sep 2004
Posts: 7,728
Reputation: Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute 
Solved Threads: 737
Team Colleague
Narue's Avatar
Narue Narue is offline Offline
Code Goddess

Re: Having problem with array in for loop...

 
1
  #4
Oct 16th, 2008
>but my professor didn't explain it very well in class last night
How about you try to explain it to me as you understand it, then I'll fill in the blanks for you.
I'm here to prove you wrong.
Reply With Quote Quick reply to this message  
Join Date: Oct 2008
Posts: 118
Reputation: chococrack is on a distinguished road 
Solved Threads: 14
chococrack's Avatar
chococrack chococrack is offline Offline
Junior Poster

Re: Having problem with array in for loop...

 
0
  #5
Oct 16th, 2008
#include <iostream>

int main()
{
	using namespace std;  // out of place
	int exercise[5], i;

	cin >> exercise[0];  // is only entering one value 

	for (i = 0; i < 5; i++)
	{
		cout << exercise[i] << endl;
	}

	return 0;

}

#include <iostream>

using namespace std;

int main()
{
    int exercise[5];
    for(int i=0; i<5; i++)   // C++ arrays start with index 0, so its 0, 1, 2, 3, 4
    {
        cin >> exercise[i];   // index[0] gets 1, [1] gets 2, ...
        cout << exercise[i]; // as you input, 12345, it will also output
    }

    for(int i=0; i<5; i++)
    {
        cout << element[i] << endl; // endl is endline (or a new line)
    }

    return 0;
}
I would love to change the world, but they won't give me the source code
Reply With Quote Quick reply to this message  
Join Date: Sep 2004
Posts: 7,728
Reputation: Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute Narue has a reputation beyond repute 
Solved Threads: 737
Team Colleague
Narue's Avatar
Narue Narue is offline Offline
Code Goddess

Re: Having problem with array in for loop...

 
2
  #6
Oct 16th, 2008
>using namespace std; // out of place
Actually, that's a better place than your proposed solution. The effect of a using directive is limited by scope. When you restrict the directive to a block scope, you minimize the chances of a name collision and effectively remove the biggest reason for avoiding the using directive[1].

>// C++ arrays start with index 0, so its 0, 1, 2, 3, 4
I think it's safe to say that the OP already understands this.

[1] The reason: a using directive at global scope defeats the purpose of namespaces. The only reason you should have a using directive at global scope is when porting pre-standard C++ quickly. In new code, it's a bad practice.
I'm here to prove you wrong.
Reply With Quote Quick reply to this message  
Join Date: Oct 2008
Posts: 118
Reputation: chococrack is on a distinguished road 
Solved Threads: 14
chococrack's Avatar
chococrack chococrack is offline Offline
Junior Poster

Re: Having problem with array in for loop...

 
0
  #7
Oct 16th, 2008
Originally Posted by Narue View Post
>using namespace std; // out of place
Actually, that's a better place than your proposed solution.
Neat stuff thanks for the feedback. I do appreciate lots of your posts. I learn a lot of neat things. Had no idea it was even legal to use a directive on a block scope.
Last edited by chococrack; Oct 16th, 2008 at 6:02 pm.
I would love to change the world, but they won't give me the source code
Reply With Quote Quick reply to this message  
Join Date: Feb 2008
Posts: 114
Reputation: sidatra79 is an unknown quantity at this point 
Solved Threads: 8
sidatra79's Avatar
sidatra79 sidatra79 is offline Offline
Junior Poster

Re: Having problem with array in for loop...

 
0
  #8
Oct 17th, 2008
[1] The reason: a using directive at global scope defeats the purpose of namespaces. The only reason you should have a using directive at global scope is when porting pre-standard C++ quickly. In new code, it's a bad practice.
EXACTLY 100% agree
thats why I am writing the whole time :
  1. std::cout<<......std::endl;
  2. std::cin>>...;
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC