Help with a logic

baskarvj's Avatar, Join Date: May 2010
Newbie Member
Hi,

I need to write a C++ program to do the following things, and i have displayed my attempted code. Please let me know if there is more effective way to do this.

- I need to calculate the % based on the input values (run-time)
- The percentage value will keep on increasing based on the input values.

For eg

If the input is 30, then it after completing the 1st operation it should display 1 % .... and after completing 2nd operation it should display 2 % and so on, and when it completes 30th operation it will display 100 %.

Note: the input values is a random number.


My logic

Case 1: If the input is 30

1/30 = 0.03 and multiply the result by 100 then the value is 3 %
.........
30/30 = 1 result will be 100 %

It is ok to have the % is some increasing order, rather than more presisely with 1%,2% etc.

But problem is my logic will not work for this case

Case 2: If the input is for eg 300

then 1/300 = 0.033 and multiply the result by 100 then the value is 0.33, in this case i should multiply by 1000 instead of 100 to get the round value.

Any idea on how to deal with this.

Thanks in advance.
0
virxen's Avatar, Join Date: Nov 2009
Pro contributor
try to explain better what you want to do
0
xpi0t0s's Avatar, Join Date: Aug 2004
Mentor
Quote:
Originally Posted by baskarvj View Post
I need to write a C++ program to do the following things, and i have displayed my attempted code.
Where?

I also don't understand the problem here:
Quote:
Originally Posted by baskarvj View Post
Case 2: If the input is for eg 300

then 1/300 = 0.033 and multiply the result by 100 then the value is 0.33, in this case i should multiply by 1000 instead of 100 to get the round value.
Why do you think you need to multiply the result by 1000? Why do you think that .033 * 100 = .33? Did you try that on a calculator? If you multiply by 1000 instead of 100, you won't get 1% for 1/300, and the progress bar will finish (a) at 1000%, or (b) when you're 1/10th of the way through the task.