I'm a beginner programmer, so this is going to look messy, but I keep getting the problem that is mentioned in the title. No matter where I try to put endl; it keeps giving me the same error. Also when I run the code my total for the second store comes out right but the first store total does not. Any idea on how to fix this? I'm using codeblocks on a windows 7 computer.
#include <iostream> //Allows cout/cin
#include <ctime> //Allows time
#include <iomanip> //Allows setprecision
using namespace std;
int main()
{
//Include header
//Input variables
double widgetStores;
double numberSoldFirst1;
double numberSoldFirst2;
double numberSoldSecond1;
double numberSoldSecond2;
double widgetsLeftS1W2;
double widgetsLeftS2W1;
double widgetsLeftS2W2;
//Start Clock
clock_t begin, end;
double time_spent;
begin = clock();
//Prompt for total number in stores
cout << "Total number of widgets at each store starting with :";
cin >> widgetStores;
double widgetStore1=widgetStores;
double widgetStore2=widgetStores;
double widgetsLeftS1W1;
//Prompt for amount sold during first and second week
cout << "How many widgets were sold at Store 1 the first week? ";
cin >> numberSoldFirst1;
cout << "How many widgets were sold at Store 1 the 2nd week? ";
cin >> numberSoldSecond1;
cout << "How many widgets were sold at Store 2 the first week? ";
cin >> numberSoldFirst2;
cout << "How many widgets were sold at Store 2 the 2nd week? ";
cin >> numberSoldSecond2;
//Calculate Number of widgets
widgetsLeftS1W1-=(widgetStore1-numberSoldFirst1);
widgetsLeftS1W2-=(numberSoldFirst1-numberSoldSecond1);
widgetsLeftS2W1-=(widgetStore2-numberSoldFirst2);
widgetsLeftS2W2-=(numberSoldFirst2-numberSoldSecond2);
//Display Values
cout << "Store 1 has " << widgetsLeftS1W2 << " widgets left after the 2nd week.";
cout << "Store 2 has " <<widgetsLeftS2W2 << " widgets left after the 2nd week.";
//Show time elapsed
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
cout << setprecision(2) << fixed << "****Elapsed time:" <<time_spent/60 << "minutes****";
return 0;
Did you try something like
cout << "Total number of widgets at each store starting with :";
cin >> widgetStores;
cout << endl; //Added this
cin doesn't have a << operator, so you need to send it to cout.
Edit: I found the error you're having. I guess that you are trying to put in lines as literally
endl;
and that doesn't go anywhere...
The only compile error this program has, is that you're using widgetsLeftS1W1, widgetsLeftS1W2, widgetsLeftS2W1 and widgetsLeftS2W2 before initializing them.
You probably need = instead of -=.
When you say
widgetsLeftS1W1 -= (widgetStore1-numberSoldFirst1);
what you actually mean is
widgetsLeftS1W1 = widgetsLeftS1W1 - (widgetStore1-numberSoldFirst1);
The computer doesn't know the value of widgetsLeftS1W1, so it gives you the error.
Conclusion: use
widgetsLeftS1W1 = (widgetStore1 - numberSoldFirst1);
Try initializing the values of
widgetsLeftS1W1
widgetsLeftS1W2
widgetsLeftS2W1
widgetsLeftS2W2
with zero while declaring them at the top.
Related
I am new to c++ and I am trying to accomplish my 1st assignment. I don't need a decision but I want to know what am I doing wrong? Here is my code:
#include <iostream>
using namespace std;
int main(){
int chTenders;
int frOrders;
int macCh;
int drinks;
int sauces;
float tip;
float subtotal;
subtotal = chTenders + frOrders + macCh + drinks + sauces + tip;
cout << "How many chicken tenders would you like?\n";
cin >> chTenders;
cout << "How many orders of fries would you like?\n";
cin >> frOrders;
cout << "How many orders of mac and cheese would you like?\n";
cin >> macCh;
cout << "How many drinks would you like?\n";
cin >> drinks;
cout << "How many sauces would you like?\n";
cin >> sauces;
cout << "How much would you like to tip?\n";
cin >> tip;
cout << "====Slim's Order====\n";
cout << "Subtotal $" << subtotal << endl;
return 0;
}
And when I compile and run this it gives me $2.60929e+08 instead of 6.0:
How many chicken tenders would you like?
1
How many orders of fries would you like?
1
How many orders of mac and cheese would you like?
1
How many drinks would you like?
1
How many sauces would you like?
1
How much would you like to tip?
1
====Slim's Order====
Subtotal $2.60929e+08
I think the order of your calculations is just off. subtotal is calculated before you receive input values into the summands (chTenders, frOrders, etc.). Move the subtotal=... line to after the cin << tip statement.
To elaborate on the why, you are computing the value of subtotal before you assign any values to the variables. In C++, until you assign a value to a variable, the result of accessing it is based on what ever happened to be written to that bit of memory by some other process. So you essentially computed a garbage value and then asked the user for input. It is often considered a good practice in C++ to initialize variables at the same time they are defined.
trying to make my first post right so here goes.
I ran into this question and have not been able to figure it out. I keep receiving the error:
error C4700: uninitialized local variable 'miles' used
I have scavenged over all of StackOverflow and keep running into the same answer: I have to initialize my local variable, but when I do that I am creating a set value. I want to set my local variable 'miles' to an unknown value because I want the user to be able to set the value when the program runs.
Everything ran great until I tried to cast the end value 'miles'so that it would truncate.
Please correct me if I'm using incorrect terminology. Fresh-out-of-the-womb-to-programming. And thank you to everyone in advance.
Question:
Write a program that prompts the capacity, in gallons, of an automobile fuel tank and the miles per gallon the automobile can be driven. The program outputs the number of miles the automobile can be driven without refueling. Numbers entered for capacity must allow entry of capacity being an integer and the miles per gallon in decimals. The number of miles must be output to the next lowest integer (without decimals).
#include "stdafx.h"
//include statement
#include<iostream>
//include namespace statement
using namespace std;
//main function
int main()
{
//variable declaration
double capacity_Gallons;
double miles_Gallon;
double miles = static_cast<int>(miles < 0 ? miles - 0.5 : miles + 0.5);
//inputting capacity of automobile
cout << "Enter the capacity of the automobile fuel in gallons: ";
cin >> capacity_Gallons;
cout << endl;
//inputting the miles per Gallons
cout << "Enter the miles per gallons the automobile can be driven: ";
cin >> miles_Gallon;
cout << endl;
//calculating miles
miles = capacity_Gallons * miles_Gallon;
//display output data
cout << "Number of miles driven wihtout refueling: " << miles << endl;
//pause system for some time for user continuation
system("pause");
} //end main
You should take out that line entirely, and change the later line to double miles = capacity_Gallons * miles_Gallon;.
Instead of your handcrafted rounding code it would be better to use the standard rounding function in the display statement, ... << std::lround(miles) << ... although your assignment stipulation says you should round down , not round to nearest as you are currently doing. (So you can just cast to int there).
You don't need to declare miles there, you can declare it at the point it has a value.
#include<iostream>
int main()
{
//inputting capacity of automobile
double capacity_Gallons;
std::cout << "Enter the capacity of the automobile fuel in gallons: ";
std::cin >> capacity_Gallons;
std::cout << endl;
//inputting the miles per Gallons
double miles_Gallon;
std::cout << "Enter the miles per gallons the automobile can be driven: ";
std::cin >> miles_Gallon;
std::cout << endl;
//calculating miles
double miles = capacity_Gallons * miles_Gallon;
//display output data
std::cout << "Number of miles driven wihtout refueling: " << miles << std::endl;
//pause system for some time for user continuation
system("pause");
}
As an aside, using namespace std is a bad habit.
I have coded a program in C++ for an assignment in my C++ Intro class but I have multiple errors in the program but I can't seem to figure out how to get all of the bugs out.
The program is supposed to ask the user for the name of the movie, the number of adult and child tickets sold, and calculate the gross box office profit, net box office profit and the amount paid to the distributor.
I can't seem to figure out how to initialize the variables adultTicketPrice and
childTicketPrice and I thought I declared them and am trying to figure out if they need to get initialized if I already declared them?
And how is the childTicket price out of scope?
And why am I getting the other errors and how can I fix them?
// Michael VanZant
// Flix for Fun Profit Report
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{
// Create all double variables
double adultTicketsSold, childTicketsSold, grossBoxProfit, netBoxProfit,
amtPaidDist, adultTicketPrice, childTicketPrice
adultTicketPrice = 12;
childTicketPrice = 7;
cout << fixed << setprecision(2);
// Create the string variable
string movieName;
// Get the name of the movie and store it in the movieName string
cout << "What is the name of the movie?";
getline(cin, movieName);
cout << "\n";
// Cin.ignore to ignore the string variable type
cin.ignore();
// Get the amount of adult and child tickets sold
cout << "How many adult tickets do you want to buy?";
cin >> adultTicketsSold;
cout << "\n";
cout >> "How many child tickets did you want to buy?";
cin >> childTicketsSold;
cout << "\n";
// Calculate the amount of gross box office profit and display it
grossBoxProfit = (childTicketsSold * childTicketPrice) + (adultTicketsSold * adultTicketPrice);
cout << "Gross Box Office Profit: $" << grossBoxProfit;
cout << "\n";
// Calculate the net box profit amount and display it
netBoxProfit = grossBoxProfit * .20;
cout << "Net Box Profit Amount: $" << netBoxProfit;
cout << "\n";
// Calculate the amount paid to distributor and display it
amtPaidDist = grossBoxProfit - netBoxProfit;
cout << "Amount Paid to Distributor is: $" << amtPaidDist;
return 0;
}
When the compiler says "expected initialiser", it has nothing to do with these lines:
adultTicketPrice = 12;
childTicketPrice = 7;
which are actually assignments, not initialisations (though some old C terminology would call the first assignment an initialisation).
No, it's because it thinks you're still on this line, providing declarations and (optionally) initialisers:
double adultTicketsSold, childTicketsSold, grossBoxProfit, netBoxProfit,
amtPaidDist, adultTicketPrice, childTicketPrice
That's because you didn't put a ; at the end of it.
Also:
cout >> "How many child tickets did you want to buy?";
You meant <<.
Fixing those two little typos, the code compiles.
I’m hoping someone could help me out. Below is my current code. Please be gentle, this is legitimately my first program in C++, and it’s been about a year since I last touched C. And yes, this is for homework ~ I’ve used this page enough to know it’s asked quite a bit ;)
What I’m having an issue with, and struggling to find something moderately helpful regarding it, is how do I create an array to store user input text?
As you can see from the flow of the code: I ask how many items does the user want to purchase… this then dictates the looping, asking the user for the item name being purchased, the cost per item, and the total quantity. I am fine with the math part ~ I have the total items purchased and the running subtotal printing out pretty accurately. However, what I would like to do is print, in order, the names of the items that were purchased, too.
Current Code Output:
How many items do you want to enter? 3
What is the item name? Honey
What is the unit price for Honey? 5.99
How many purchased? 3
What is the item name? Milk
What is the unit price for Milk? 2.79
How many purchased? 2
What is the item name? chocolate
What is the unit price for chocolate? 1.97
How many purchased? 5
Bill Date:
Items Purchased: 10
Subtotal: 33.4
In between “Bill Date” and “Items Purchased” I would like to list, line by line, the (3) items purchased: Honey, Milk, and chocolate. It’s the storing of the item name and incrementing it that I am very much stuck on. If someone could point me in the right direction, I would greatly appreciate it. And please, the lengthier you explain the how's and why's, the better for me. Text/char arrays and I are mere acquaintances, whereas numerical int arrays and I are drinking buddies.
Thank you!! :D
Desired Code Output:
Bill Date:
Honey
Milk
chocolate
Items Purchased: 10
Subtotal: 33.4
My Code:
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cstring>
#include <time.h>
using namespace std;
int main()
{
int itemCount = 0, i, itemQty;
int numOfItems = 0;
char itemName[25];
double itemCost;
double itemSub;
double subtotal = 0;
cout << "How many items do you want to enter? ";
cin >> itemCount;
for(i = 0; i < itemCount; i++)
{
cout << "What is the item name? ";
cin >> itemName;
cout << "What is the unit price for " << itemName << "? ";
cin >> itemCost;
cout << "How many purchased? ";
cin >> itemQty;
numOfItems = numOfItems + itemQty;
itemSub = itemQty * itemCost;
subtotal = subtotal + itemSub;
}
cout << "\n\tItems Purchased: " << numOfItems;
cout << "\n\tSubtotal: " << subtotal << "\n";
}
What is the largest number of items to be purhcased?...I suppose it is 100..Instead of making an array of chars you can make an array of string so change the line char itemName[25]; to string itemName[100]; then inside the for loop change the input and output of itemname to cin >> itemName[i];
cout << "What is the unit price for " << itemName[i] << "? ";
then you can output the names of items at last this way:
for(int i=0;i<itemCount;i++)
{
cout<<endl<<itemName[i];
}
cout << "\n\tItems Purchased: " << numOfItems;
cout << "\n\tSubtotal: " << subtotal << "\n";
This question already has answers here:
Closed 12 years ago.
Possible Duplicate:
C++ passing variables in from one Function to the Next.
The Program is working but when it comes to getUserData it asks for the same information 4 times and then displays the results with negative numbers. I used test numbers for number of rooms 1, 110 for sqrt feet in the room, 15.00 for cost of paint.
//Problems with this not working
void showMenu();
void getUserData(int &, double &, int &);
void doEstimate(int &, double &, int &, double &, double &);
void showReport();
int main()
{
int choice;
//I am not sure why I have to do this but someone suggested to do it and the program complied when I did this int calc ect
int calcGallonsOfPaint, rooms, totalsqrtfeet;
double calcCostOfPaint, costOfPaint;
int calcHoursOfLabor;
double calcLaborCost;
double calcPaintJobCost;
// Set up numeric output formatting.
cout << fixed << showpoint << setprecision(2);
do
{
// Display the menu and get the user's choice.
showMenu();
cin >> choice;
// Validate the menu selection.
while (choice < 1 || choice > 2)
{
cout << "Please enter 1 or 2: ";
cin >> choice;
}
if (choice == 1)
{
//for some reason it just keeps repeating the function getUserData
getUserData(rooms, costOfPaint, totalsqrtfeet);
doEstimate(calcGallonsOfPaint, calcCostOfPaint, calcHoursOfLabor, calcLaborCost, calcPaintJobCost);
showReport();
}
} while (choice != 2);
return 0;
}
void getUserData(int &rooms, double &costOfPaint, int &totalsqrtfeet)
{
int sqrtfeet;
int count = 0;
cout << "Please enter the number of rooms to be painted: ";
cin >> rooms;
cout << "Please enter square feet of wall space in each room: ";
cin >> sqrtfeet;
for (count = 1; count <= rooms; count++)
{
cout << "Please eneter square feet of wall space in room " << count << ": ";
cin >> sqrtfeet;
totalsqrtfeet += sqrtfeet;
}
cout << "What is the cost of the paint: ";
cin >> costOfPaint;
system("cls");
system("pause");
}
void doEstimate(int &calcGallonsOfPaint, double &calcCostOfPaint, int &calcHoursOfLabor, double &calcLaborCost, double &calcPaintJobCost)
{
//I am not sure why I have to do this but someone suggested to do it and the program complied when I did this: puting int rooms ect
int rooms, totalsqrtfeet;
double costOfPaint;
getUserData(rooms, costOfPaint, totalsqrtfeet);
calcGallonsOfPaint = 1 * (totalsqrtfeet/110); //Calculates the number of whole gallons of paint required.
calcCostOfPaint = calcGallonsOfPaint * costOfPaint; //Calculates the cost of the paint required.
calcHoursOfLabor = calcGallonsOfPaint * 6; //Calculates the number of whole hours of labor required.
calcLaborCost = calcHoursOfLabor * 15.00; //Calculates the labor charges.
//Calculates the cost of the paint job. This is the sum of the labor charges and the cost of the paint required.
calcPaintJobCost = calcLaborCost + calcCostOfPaint;
/*110 square feet of wall space
one gallon of paint
six hours of labor
$15.00 per hour for labor
*/
}
void showReport()
{
//I am not sure why I have to do this but someone suggested to do it and the program complied when I did this
int calcGallonsOfPaint, rooms, totalsqrtfeet;
double calcCostOfPaint, costOfPaint;
int calcHoursOfLabor;
double calcLaborCost;
double calcPaintJobCost;
getUserData(rooms, costOfPaint, totalsqrtfeet);
doEstimate(calcGallonsOfPaint, calcCostOfPaint, calcHoursOfLabor, calcLaborCost, calcPaintJobCost);
cout << "The number of rooms to be painted: " << rooms << endl;
cout << "The number of whole gallons of paint required: " << calcGallonsOfPaint << endl;
cout << "The hours of labor required: " << calcHoursOfLabor << endl;
cout << "The cost of the paint: " << calcCostOfPaint << endl;
cout << "The labor charges: " << calcLaborCost << endl;
cout << "The total cost of the paint job: " << calcPaintJobCost << endl;
system("pause");
system("cls");
}
One thing that you should do is initialise totalsqrtfeet to zero in your main function. That's because you're just adding the size of each room to it and it starts out with a random value: junk + a + b + c + d is still junk :-)
On top of that, you call getUserData from your main function and then again from doEstimate. And then you call them both again in showReport. That's why it's asking four times. Just call getUserData once. Since it's homework, I'll leave you to figure out where but here's a hint. If you do it in main (nudge, nudge, wink, wink), you'll have to pass he variables into doEstimate as well, not create new variables of the same name within that function and magically expect the compiler to associate them with the originals.
To caveat on what paxdiablo said, you are calling getUserData in your nested while loop, but I don't understand the purpose of calling getUserData(rooms, costOfPaint, totalsqrtfeet); prior to doEstimate(...) when the data isn't used nor passed to doEstimate(...) until you call getUserData again while inside the doEstimate(...) function. You should pass by value the rooms, costOfPaint, and totalsqrtfeet variables to doEstimate(...) or make them global since you only have one main() function anyways. If you had some sort of OO solution, then I wouldn't recommend making them global and rather part of a class.
Also all these variables are ZERO or NULL when they are passed into doEstimate(...):
calcGallonsOfPaint, calcCostOfPaint, calcHoursOfLabor, calcLaborCost, calcPaintJobCost
If you want to output them, then you need to pass them by reference to doEstimate(...) and then when it gets to the cout then it will sufficiently print the correct values. That is why it is zero.
The bottom line is though you need one function to call the other functions. That would be the simplest plan at this point, such as:
GetDataAndPrint(...) {
// Get some data
// Do estimate, pass in values by reference
// Print Results from calculated values
// return
}