Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

program by also outputting \"The next higher weight is ___ with a cost of ___ ce

ID: 644672 • Letter: P

Question

program by also outputting "The next higher weight is ___ with a cost of ___ cents".

#include <iostream>
using namespace std;

int main () {
const int NUM_ELEMENTS = 14; // Number of elements
double letterWeights[NUM_ELEMENTS]; // Weights in ounces
int postageCosts[NUM_ELEMENTS]; // Costs in cents (usps.com 2013)
double userLetterWeight = 0.0; // Letter weight
bool foundWeight = false; // Found weight specified by user
int i = 0; // Loop index


// Populate letter weight/postage cost arrays
letterWeights[i] = 1; postageCosts[i] = 46; ++i;
letterWeights[i] = 2; postageCosts[i] = 66; ++i;
letterWeights[i] = 3; postageCosts[i] = 86; ++i;
letterWeights[i] = 3.5; postageCosts[i] = 106; ++i;
letterWeights[i] = 4; postageCosts[i] = 152; ++i;
letterWeights[i] = 5; postageCosts[i] = 172; ++i;
letterWeights[i] = 6; postageCosts[i] = 192; ++i;
letterWeights[i] = 7; postageCosts[i] = 212; ++i;
letterWeights[i] = 8; postageCosts[i] = 232; ++i;
letterWeights[i] = 9; postageCosts[i] = 252; ++i;
letterWeights[i] = 10; postageCosts[i] = 272; ++i;
letterWeights[i] = 11; postageCosts[i] = 292; ++i;
letterWeights[i] = 12; postageCosts[i] = 312; ++i;
letterWeights[i] = 13; postageCosts[i] = 332; ++i;

// Prompt user to enter letter weight
cout << "Enter letter weight (in ounces): " << endl;
cin >> userLetterWeight;

// Postage costs is based on smallest letter weight greater than
// or equal to mailing letter weight
foundWeight = false;

for (i = 0; (i < NUM_ELEMENTS) && (!foundWeight); ++i) {
if( userLetterWeight <= letterWeights[i] ) {
foundWeight = true;
cout << "Postage for USPS first class mail is ";
cout << postageCosts[i] << " cents" << endl;
}
}

if( !foundWeight ) {
cout << "Letter is too heavy for USPS first class mail." << endl;
}

return 0;
}

Explanation / Answer

#include <iostream>
using namespace std;

int main () {
const int NUM_ELEMENTS = 14; // Number of elements
double letterWeights[NUM_ELEMENTS]; // Weights in ounces
int postageCosts[NUM_ELEMENTS]; // Costs in cents (usps.com 2013)
double userLetterWeight = 0.0; // Letter weight
bool foundWeight = false; // Found weight specified by user
int i = 0; // Loop index


// Populate letter weight/postage cost arrays
letterWeights[i] = 1; postageCosts[i] = 46; ++i;
letterWeights[i] = 2; postageCosts[i] = 66; ++i;
letterWeights[i] = 3; postageCosts[i] = 86; ++i;
letterWeights[i] = 3.5; postageCosts[i] = 106; ++i;
letterWeights[i] = 4; postageCosts[i] = 152; ++i;
letterWeights[i] = 5; postageCosts[i] = 172; ++i;
letterWeights[i] = 6; postageCosts[i] = 192; ++i;
letterWeights[i] = 7; postageCosts[i] = 212; ++i;
letterWeights[i] = 8; postageCosts[i] = 232; ++i;
letterWeights[i] = 9; postageCosts[i] = 252; ++i;
letterWeights[i] = 10; postageCosts[i] = 272; ++i;
letterWeights[i] = 11; postageCosts[i] = 292; ++i;
letterWeights[i] = 12; postageCosts[i] = 312; ++i;
letterWeights[i] = 13; postageCosts[i] = 332; ++i;

// Prompt user to enter letter weight
cout << "Enter letter weight (in ounces): " << endl;
cin >> userLetterWeight;

// Postage costs is based on smallest letter weight greater than
// or equal to mailing letter weight
foundWeight = false;

for (i = 0; (i < NUM_ELEMENTS) && (!foundWeight); ++i) {
if( userLetterWeight <= letterWeights[i] ) {
foundWeight = true;
cout << "Postage for USPS first class mail is ";
cout << postageCosts[i] << " cents" << endl;

if((i+1)<NUM_ELEMENTS){ //checking if next weight exists or is it the max weight possible
cout << "The next higher weight is "<< letterWeights[i+1] <<" with a cost of "<< postageCosts[i+1]<<" cents"<< endl;
}

}
}

if( !foundWeight ) {
cout << "Letter is too heavy for USPS first class mail." << endl;
}

return 0;
}