Mainly covers conditional statements, but once again going from code to program. There are several key things to note here:
- Constants are used to instead of "magic" numbers.
- Math library is used here
- Netbeans --> Project properties --> Linker --> Libraries --> Standard libraries
/* * File: main.c * Author: Kmingk * * Created on September 27, 2015 */ #include <stdio.h> #include <stdlib.h> #include <math.h> /* Tutorial 2 - Advanced output * * Program Description: * Build a program that takes a dollar (and cents) value less than 20 * and rounds the value to the nearest nickel.It then computes the * smallest number of total bills and coins that sum to that rounded value * * Inputs: *rawAmount - Double * Outputs: *roundedAmount - Double *numTens - int *numFives- int *numOnes *numQuarters *numDimes *numNickels */ int main(int argc, char** argv) { // Variable and Constants Declaration const double TEN= 10; const double FIVE = 5; const double ONE= 1; const double QRTR = 0.25; const double DIME = 0.1; const double NICKEL = 0.05; double rawAmount, roundedAmount, savedRoundedAmount; int numTens, numFives, numOnes, numQuarters, numDimes, numNickels; // Get monetary value from user printf ("Enter Value: "); scanf ("%lf", &rawAmount); if (rawAmount < 0) { exit() } // Round value to nearest nickel // round the normalized amount rawAmount/Nickels --> then multiply // by the value of a nickel to get the rounded to nickel value roundedAmount = rint(rawAmount / NICKEL) * NICKEL; savedRoundedAmount = roundedAmount; //printf ("%lf", roundedAmount); // Calculating the number of each denomination, roundedAmount keeps a // rolling total of the remainder numTens = roundedAmount/TEN; roundedAmount = roundedAmount - TEN*numTens; numFives = roundedAmount/FIVE; roundedAmount = roundedAmount - FIVE*numFives; numOnes = roundedAmount/ONE; roundedAmount = roundedAmount - ONE*numOnes; numQuarters = roundedAmount/QRTR; roundedAmount = roundedAmount - QRTR*numQuarters; numDimes = roundedAmount/DIME; roundedAmount = roundedAmount - DIME*numDimes; numNickels = roundedAmount/NICKEL; roundedAmount = roundedAmount - NICKEL*numNickels; // Output Raw and Rounded amount with change needed printf ("Raw Value: $%0.2lf\n", rawAmount); printf ("Rounded Value $%0.2lf\n", savedRoundedAmount); printf ("# Tens: %d\n", numTens); printf ("# Fives: %d\n",numFives); printf ("# Dollars: %d\n",numOnes); printf ("# Quarters: %d\n", numQuarters); printf ("# Dimes: %d\n",numDimes); printf ("# Nickels: %d\n",numNickels); }