# Annoying Array - Simple Problem ( I hope)

• 11-05-2011
Parrot
Annoying Array - Simple Problem ( I hope)
Hey guys, I'm working on what should be a fairly simple program. This is a function I'm having trouble with. It's probably some stupid mistake but if so I can't see it. I want the function to set each variable in an array to a fraction (decimal), but each value after arrays[0] ends up as 0. I'm pretty sure the problem lies within the function after checking the variables while debugging.

Code:

```double init(double arrays[], int n) {     int counter;     for (counter = 0; counter <= n; counter++)     {     arrays[counter] = 1 / (counter + 1);     }     return 0; }```
I want the array's values to be set like this:

a[0] = 1/1, a[1] = 1/2, a[2] = 1/3 ... a[n] = 1/(n+1)

Any help is greatly appreciated!

EDIT: I doubt this will help but I started the function in main() using this line: init(arrays, n);
• 11-05-2011
CommonTater
They will all end up as 0 since integers don't support decimal places, only whole numbers.

You need to do this with floating point math...
Code:

`arrays[counter] = 1.0 / (counter + 1);`
You won't actually see 1/4 etc. you will see the decimal equivalent .25.
• 11-05-2011
Parrot
Ohhh, so apparently I needed a 1.0 instead of 1 in my equation.

I tried it and it seems to work fine. I knew it was something simple like that! Thanks! :D
• 11-05-2011
CommonTater
Quote:

Originally Posted by Parrot
Ohhh, so apparently I needed a 1.0 instead of 1 in my equation.

I tried it and it seems to work fine. I knew it was something simple like that! Thanks! :D

Yeah, it will do it as an integer unless there's a floating point number in there someplace...

You're welcome.
• 11-05-2011
FloridaJo
Quote:

Originally Posted by Parrot
Ohhh, so apparently I needed a 1.0 instead of 1 in my equation.

And if you're short on memory, 1. will work too :)