Exercise 7.5: Working with Two-Dimensional Arrays
Here is the problem specification:
A company wants a program that displays a shipping charge based on the number of items ordered by the customer. The shipping charge information is shown here.
Use 2 dimensional array.
Minimum orderMaximum orderShipping charge ($)1 | 50 | 20 |
51 | 100 | 15 |
101 | 200 | 10 |
201 | 500 | 5 |
501 | 999999 | 0 |
Sample run:
Number ordered (negative number or 0 to end): 5
Shipping charge for a quantity of 5 is $20
Number ordered (negative number or 0 to end): 25
Shipping charge for a quantity of 25 is $20
Number ordered (negative number or 0 to end): 55
Shipping charge for a quantity of 55 is $15
Number ordered (negative number or 0 to end): 150
Shipping charge for a quantity of 150 is $10
Number ordered (negative number or 0 to end): 250
Shipping charge for a quantity of 250 is $5
Number ordered (negative number or 0 to end): 550
Shipping charge for a quantity of 550 is $0
Number ordered (negative number or 0 to end): 0
Solution:
#include <iostream>
using namespace std;
int main(){
// initialization of variables needed
int numberOrdered;
int shippingChargeChart[5][3] = {
{1,50,20},
{51,100,15},
{101, 200, 10},
{201,500,5},
{501,999999,0}
};
// for user input
cout << "Number ordered (Negative Number or 0 to end): ";
cin >> numberOrdered;
// while loop to check if number ordered is 0 or negative
while (numberOrdered > 0) {
for (int i = 0; i < 5; i++) {
// checks to see if number ordered is between the minimum and maximum
order amount
if (numberOrdered >= shippingChargeChart[i][0] && numberOrdered <=
shippingChargeChart[i][1]) {
cout << "Shipping charge for a quantity of " << numberOrdered << "
is $" << shippingChargeChart[i][2] << endl;
break;
}
else {
continue;
}
}
cout << "\nNumber ordered (Negative Number or 0 to end): ";
cin >> numberOrdered;
}
return 0;
}