This snip of code will only find the perfect cubes 1, 8, and 27. when the user enters 100. It doesn't realize that 64 is a perfect cube. I can't find the problem. Any input would be much appreciated.
pow((double)64, (double)1 / 3) is approximately 3.9999999999999996 for me, so the floor of that is 3, not 4 like you might expect.
I would consider sticking to integers instead, and instead of checking whether each number is a perfect cube, just calculate the perfect cubes until they exceed the inputted number. That way, you won't run into situations like this.