C: Program That Calculates Pay Based On Salary And Hours.
https://github.com/pereiradaniel/beginning_c/blob/master/ch2/exercises/2_4/exercise2_4.c
// Exercise 2-4 // Write a program that prompts for the user’s weekly pay in dollars and the // hours worked to be entered through the keyboard as floating-point values. The program // should then calculate and output the average pay per hour in the following form: // Your average hourly pay rate is 7 dollars and 54 cents. #include <stdio.h> double checkInput(double input, double min, double max); int main(int argc, char* argv[]) { double hours = 0, rate = 0; // Get input for hours: printf("Enter number of hours worked: "); while(hours == 0) { scanf(" %lf", &hours); hours = checkInput(hours, 1, 10000); } // Get input for salary: printf("Enter hourly rate: "); while(rate == 0) { scanf(" %lf", &rate); rate = checkInput(rate, 1, 100); } // Calculate pay: printf("Pay: $%.2f\n", hours * rate); return 0; } double checkInput(double input, double min, double max) { double result = 0; if (input < min || input > max) // out of bounds, invalid! printf("Enter a number between %.f or %.f!\n", min, max); else // inbounds, validate! result = input; return result; }
https://github.com/pereiradaniel/beginning_c/blob/master/ch2/exercises/2_4/exercise2_4.txt
==808== Memcheck, a memory error detector ==808== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==808== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info ==808== Command: ./exercise2_4 ==808== Enter number of hours worked: 0 Enter a number between 1 or 10000! 10001 Enter a number between 1 or 10000! 300 Enter hourly rate: 0 Enter a number between 1 or 100! 101 Enter a number between 1 or 100! 50 Pay: $15000.00 ==808== ==808== HEAP SUMMARY: ==808== in use at exit: 0 bytes in 0 blocks ==808== total heap usage: 2 allocs, 2 frees, 2,048 bytes allocated ==808== ==808== All heap blocks were freed -- no leaks are possible ==808== ==808== For lists of detected and suppressed errors, rerun with: -s ==808== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)