program crashing, need help!

Can anyone tell me why this program crashes when I enter 0 for How many items need to be purchased to recieve a discount?

#include <iostream>
#include <iomanip>
#include <string>

using namespace std;

int main()
{
//variables
string itemName;
int numPurchased;
int numneedDiscount;
int numDiscounted;
double priceperItem;
double discountPercent;
double discountDecimal;
double singleDiscount;
double totalDiscount;
double grandtotalnoDisc;
double grandtotalDisc;
string again = "Y";

//constants
const int MIN_PURCHASED = 1;
const int MAX_DISCOUNT = 30;
const int MIN_DISCOUNT = 0;
const double MIN_ITEM_COST = 0;
const int NUM_FOR_DISCOUNT = 0;


while (again == "Y" || again == "y")
{

//read in item name

cout << "\nPlease enter the item name: ";
getline(cin, itemName);


//read in number purchased

cout << "Please enter the number of items purchased: ";
cin >> numPurchased;

while (numPurchased < MIN_PURCHASED)

{
cout << "*** The number of items purchased must\nbe at least 1.";
cout << "\n*** Please reenter: ";
cin >> numPurchased;
}


//read in number that have to be purchased to recieve discount

cout << "How many items need to be\npurchased to receive a discount? ";
cin >> numneedDiscount;

while (numneedDiscount < NUM_FOR_DISCOUNT)

{
cout << "*** The number of items purchased to recieve\n*** a discount must be at least 0.\n*** Please reenter: ";
cin >> numneedDiscount;
}


//read in discount percentage

if (numneedDiscount > NUM_FOR_DISCOUNT)

{
cout << "Please enter discount percentage: ";
cin >> discountPercent;

while (discountPercent < MIN_DISCOUNT)

{
cout << "*** The discount percentage must be\n*** at least 0.00% and\n*** at most 30.00%.\n*** Please reenter: ";
cin >>discountPercent;
}
}
//if no discount percent then set discount percent for single item to 0
else

{
discountPercent = 0;
}

//read in price per item

cout << "Please enter the price of a single item: ";
cin >> priceperItem;

while (priceperItem <= MIN_ITEM_COST)

{
cout << "*** The price of one item must be\n*** greater than $ 0.00\n*** Please reenter: ";
cin >> priceperItem;
}


//calculate items that will be discounted

numDiscounted = numPurchased / numneedDiscount;

//convert percentage discount to decimal

discountDecimal = discountPercent / 100;

//calculate single item discount

singleDiscount = priceperItem * discountDecimal;




}
cout << "" << endl;
return 0;
}
Last edited on
Can anyone tell me why this program crashes when I enter 0 for How many items need to be purchased to recieve a discount?


Probably a divide by zero error in this line:
numDiscounted = numPurchased / numneedDiscount;
That was it! Thanks, should have caught that
Topic archived. No new replies allowed.