Solved

Basic C++ Programming

Posted on 2013-01-25
7
437 Views
Last Modified: 2013-01-25
I need to write a basic program that takes a number from user input and adds all  numbers leading up to that number. For instance, a user enters 15, I need to add 1+2+3...15. The number "15" could be any positiving integer that the user decides to input.
Here is what I have so far but with no results:

int main ()
{
int num;
int sum = 0;
cout << "Enter a positive int value.";
cin >> num;

while (num >=1)
{
sum = sum ++
}
if (sum > num)
break;
cout << sum;

return 0;
}
0
Comment
Question by:lostinspace9
  • 3
  • 3
7 Comments
 
LVL 31

Expert Comment

by:farzanj
ID: 38818423
Your num appears to be going into an infinite loop.  You need to increment num.  A for loop on num would be easier for you.

You should not use sum for comparison for breaking out of loop.  You have to keep a variable like i that counts from 1 to num.
0
 

Author Comment

by:lostinspace9
ID: 38818600
Okay, so I changed to a for loop and am not using a sum comparison to break the loop and I am getting an odd number as output.

int num;
int total = 0;
int sum;
 cout << "Enter value.";
cin >> num;

for (sum=0; sum<num; sum++)
{
total += sum;
cout << total;
}
return 0;
0
 
LVL 16

Accepted Solution

by:
HooKooDooKu earned 500 total points
ID: 38818721
It looks like you're off by a factor of 1.

While a typical C++ for loop looks like
    for(int i=0; i<count; i++)
so that the loop with iterate 'count' times, you're trying to use the iterator for the math as well.  But that means rather than adding up the values from 1 to num you are adding up the numbers from 0 to num-1

Try changing your for loop to
    for(sum=1; sum <= num; sum++)
0
Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

 

Author Comment

by:lostinspace9
ID: 38818775
This gives me the same output I saw before of 1361015 when entering a value of 5 at the prompt when the goal would be to get the value of 15 on return.
0
 
LVL 31

Expert Comment

by:farzanj
ID: 38818862
sum name is confusing.  Make it i and total should be some, makes it easier to think.

Second, you have to add to num so it should be <= not <, as expert suggested.


Third, you should print the value after the loop executed, unless you want to see value in each step, still you should cout after the loop as well.
0
 

Author Comment

by:lostinspace9
ID: 38818880
Nevermind. Thank you for your help. The loop works fine. I just had my output inside the loop and needed to move it outside.
Thank you!
0
 
LVL 31

Expert Comment

by:farzanj
ID: 38818881
Your problem is that your cout is in the loop and there is NO endl after it.  So it is showing you different numbers all mixed up on the same line together.

1361015

Is actually
1
3
6
10
15
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

The canonical version of this article is on my web site here: http://iconoun.com/articles/collisions/ A companion presentation is available here: http://iconoun.com/articles/collisions/Unicode_Presentation.pdf
The new Microsoft OS looks great, is easier than ever to upgrade to, it is even free.  So what's the catch?  If you don't change the privacy settings, Microsoft will, in accordance with the (EULA) you clicked okay to without reading, collect all the…
The viewer will learn how to simulate a series of coin tosses with the rand() function and learn how to make these “tosses” depend on a predetermined probability. Flipping Coins in Excel: Enter =RAND() into cell A2: Recalculate the random variable…
The view will learn how to download and install SIMTOOLS and FORMLIST into Excel, how to use SIMTOOLS to generate a Monte Carlo simulation of 30 sales calls, and how to calculate the conditional probability based on the results of the Monte Carlo …

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question