0

it builds correctly and runs correctly but when the program gets to the while statement, it just stops completely, does not even allow blind input of data.
I know it is a little messy but here is the code:

// buildingwillcost.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <math.h>
#include <iostream>
using namespace std;


int main()
{
	float length1, length2, length3, length4, length5, length6;
	int wallNum, totalSheets;
	float totallength[100];
	float totalCost, sheetrockCost, tenFTcost, tenFTTOTALcost, eightFTcost, eightFTTOTALcost;
	float totalTen, totalEight;
	float SHEETROCKCOST[100]; 
	int numWall, numWall2;
	cout << "How many walls do you have to do this for?\n";
	cin >> wallNum;
	cout << "How much does a 2x4x8 cost?\n";
	cin >> eightFTcost;
	cout << "How much does a 2x4x10 cost?\n";
	cin >> tenFTcost;
	int current1, current2, current3, current4;
	int length[1000];
	int sheetrockSheets;
	int sheetType[100];
	float costofsheetrock[100];
	int NUMWALL[100];
	// number of walls with a certain type of sheetrock	
	current1 = 1;
	while (current1 <= 2);
	{
		cout << "How many walls will be using this type of sheetrock?\n";
		cin >> numWall;
		cout << "How much does sheetrock of this type cost?\n";
		cin >> sheetrockCost;
		SHEETROCKCOST[current1] = sheetrockCost;
		NUMWALL[current1] = numWall;
		current1 = current1 + 1;
	}
	// user input
	totalSheets = 0;
	totalTen = 0;
	totalEight = 0;
	totalCost = 0;
	current2 = 1;
	while (current2 <= 2);
	{
		eightFTTOTALcost = 0;
		tenFTTOTALcost = 0;
		numWall2 = NUMWALL[current2];
		current3 = 1;
		while (current3 <= numWall2);
		{
			cout << "Please enter wall length in this order:\n";
			cout << "Feet, inches, numerator of fraction over 16\n";
			cin >> length1;
			cin >> length2;
			cin >> length3;
			length4 = length1 / 12;
			length5 = length4 + length2;
			length6 = (length3 / 16) + length5;
			length[current3] = ceil((length6 / 12));
			totallength[current3] = totallength[current3] + length[current3];
			totalEight = totalEight + (length6 / 12 / 16);
			totalTen = totalTen + (length6 / 12 / 10);
			eightFTTOTALcost = (length[current3] / 16 * eightFTcost) + eightFTTOTALcost;
			tenFTTOTALcost = (length[current3] / 10 * tenFTcost) + tenFTTOTALcost;
			current3 = current3 + 1;
		}
		numWall2 = NUMWALL[current2];
		sheetrockSheets = ceil(totallength[current3] / 4);
		costofsheetrock[current2] = (sheetrockSheets * SHEETROCKCOST[current2]);
		totalCost = totalCost + eightFTTOTALcost + tenFTTOTALcost + costofsheetrock[current2];
		current2 = current2 + 1;
	}
	// print sequence
	cout << "After careful consideration, I have calculated that you will need:\n";
	cout << "A budget of: $" << totalCost;
	cout << "To cover the cost of the\n";
	cout << totalTen << " 10ft. boards\n";
	cout << totalEight << " 8ft. boards\n";
	cout << "and for the\n";
	current4 = 1;
	while (current4 <= 2);
	{
		cout << sheetType[current4] << " 4ft. by 8ft. sheets of sheetrock type " << current4;
	}
	cout << "Good-bye, good luck on the project and have a nice day\n";
	return 0;
}

Edited by peter_budo: Keep It Organized - For easy readability, always wrap programming code within posts in [code] (code blocks)

4
Contributors
4
Replies
5
Views
7 Years
Discussion Span
Last Post by Evan M
0
while (current3 <= numWall2);

Remove this ;

Edited by kenji: n/a

0

When you add the semicolon, that is the scope of the loop. while (true) {this stuff executes} while (true); {this stuff never executes} The semi-colon is terminating the scope of the loop before it executes the stuff inside the braces. The same applies for 'if' and 'for'.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.