// The old 30 days program using a while loop.
// You are offered a job working in the heat from sunup to sundown for 30 days.
// Your salary starts at $0.01 per day and will double each day.
// Would you take the job? Run this program and see if the job is worth it.
#include <iostream>
#include <iomanip>
#include <string>
using std::streamsize;
using std::setprecision;
int main()
{
double salary = .01; // daily salary
double total = 0.0; // total of the current days salary and previous days
const int width1 = 3; // used to format the day column
const int width2 = 15; // used to format the salary and total columns
streamsize prec = std::cout.precision(); // used to reset the output
// print the column headers
std::cout << std::endl;
std::cout << std::setw(width1) << "Day"
<< std::setw(width2) << "Salary"
<< std::setw(width2) << "Total" << std::endl;
// for each day, add the daily salary to the running total, print
// the results, and then double the salary for the next day.
int day = 1;
while (day <= 30) {
total += salary; // get the daily total
// print the day, daily salary, and running total
std::cout << std::setw(width1) << day << setprecision(12)
<< std::setw(width2) << salary
<< std::setw(width2) << total
<< setprecision(prec) << std::endl;
salary *=2; // double the salary
++day; // increment the day; in this case it can be ++day or day++
}
return 0;
}