How to add 1/1+ 1/2+1/3...+1/9+1/10 .
I tried but I am getting answer in negative number.

c++

Recommended Answers

Add 1.0/1.0+1.0/2.0+... when you do integer division (e.g., 1/2) regardless of the variable the result is going into it still still gets truncated. If you haven't already make sure your result is declared as type double otherwise nothing will work.

Jump to Post

If you're writing a C++ statement like that, the answer should be 1.

1/1 = 1
1/2 = 0
1/3 = 0
.....
Please show the actual code, and we can give an actual help.

Jump to Post

It didn't work because u are making sum zero in each iteration of the loop .. so just remove sum=0 from the loop.. it's enough to initialize it before the loop.
i.e:
sum=0;
for (i = 0; i <= 10; i++)
sum = sum +i(1.0\i);

While I agree it looks …

Jump to Post

All 9 Replies

Add 1.0/1.0+1.0/2.0+... when you do integer division (e.g., 1/2) regardless of the variable the result is going into it still still gets truncated. If you haven't already make sure your result is declared as type double otherwise nothing will work.

If you're writing a C++ statement like that, the answer should be 1.

1/1 = 1
1/2 = 0
1/3 = 0
.....
Please show the actual code, and we can give an actual help.

Try this:

double sum=0;
for(double i=1;i<=10;i++)
sum= sum+(1.0/i);

this is what i did but didnt work

#include <iostream>

using namespace std;

void main ()
{
double sum, i;
sum=0;
for (i = 0, sum = 0; i <= 10; i++)
sum = sum +i(1.0\i);
    cout << "Sum is " << sum << endl;
    }

to dived you use / not \. also i(...) is not valid. if you want to multiply i by that quantity you have to do i * (1.0 / i) . Also please use code tags. the link to explian them is http://www.daniweb.com/forums/announcement8-3.html

It didn't work because u are making sum zero in each iteration of the loop .. so just remove sum=0 from the loop.. it's enough to initialize it before the loop.

i.e:
sum=0;
for (i = 0; i <= 10; i++)
sum = sum +i(1.0\i);

sum = sum +i(1.0\i); That's you're killer. First of all, use the correct division symbol: /
Secondly, why is there an 'i' in front of the division?
That statement, corrected, should be:
sum = sum + ( 1.0 / i );

But in the loop's first iteration, you add 1.0 / 0, which is...um....not defined mathematically. In actuality, you get a really huge result.

Start the loop at 1.

It didn't work because u are making sum zero in each iteration of the loop .. so just remove sum=0 from the loop.. it's enough to initialize it before the loop.
i.e:
sum=0;
for (i = 0; i <= 10; i++)
sum = sum +i(1.0\i);

While I agree it looks better to initialize sum outside the loop, it is NOT being reset to 0 each iteration, any more than counter i is. The initialization statement is executed only once.

thankx everyone

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.21 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.