• Status: Solved
• Priority: Medium
• Security: Public
• Views: 205

# How to write a division formula in c?

In c program, would you be able to show me how to write a program to tell 185.80 is made up of the following please.
\$100 x 1
\$50 x1
\$20 x1
\$10 x1
\$5 x1
\$0.5x1
\$0.2x1
\$0.1x1
Many thanks!
0
Melissamcg
1 Solution

Software ArchitectCommented:
I guess it is an assignment, so I will give you some steps.
First divide your problem in 2 parts: entire and decimal portion.
You must make sucessive divisions and modulo to the entire portion

double f = 185.80; /* this is your original value */
int entire = (int)floor(f);  /* floor will give you the entire portion and (int) will "cast" the value to int */

This is just the starting point. So, to know if value has a \$100 component, divide it
int bill;
bill = entire / 100;

if result (bill) is greater than 0, then the value contains one or more \$100 bills
now to make next calculus, just rest \$100 values from entire portion:
entire -= bill*100;

Well, next is your job, continue dividing, for decimal portion, the behaviour is the inverse.

0

Commented:
*** homework solution deleted by Netminder, Site Admin ***
0

Software ArchitectCommented:
keteracel:
If this is a homework, you have violated the Members Agreement because you have provided the full-solution.
0

Commented:
The fact that you've got '\$' signs in your question suggests that this is like the automatic change calculators you get on cash tills in shops.

These require a list of the denominations of the currency you are working with. Once this table is entered the rest becomes trivial, just find the largest denomination in the table that is less than or equal to the value you have left. Then decide how many of them can be subtracted and do it.

The table is important because different currencies can make things get really wierd. Remember the old Pounds/Shillings/Pence we used to have here in the UK? There are still countries that use something like that.

Paul
0

Commented:
>>Then decide how many of them can be subtracted and do it.

Also ... keep going until the smallest denomination is larger than your current result (this will work when your result is zero too).

Note: I would strongly suggest you do not use floating point maths. Use integer pence (or cents in your case). Using floats will add unnecessary complexity to what is really a simple multiplication and subtraction problem.

Paul
0

Author Commented:
Thank you all for your input. Since I am still new to C programming, I have chosen the longest way to work out my division from a floating number. I will look to improve my skill. Many thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.