C ++ Segfault没有编译错误找不到原因

时间:2013-09-19 00:34:29

标签: c++

希望有人可以提供帮助。我能够编译没有错误,我没有发现任何语法错误,但是当我运行它时,它崩溃了。启动时调试段错误。完全披露,这是功课。我不是要求有人对此进行编码,只要查看我的问题和我现有的代码,并指出我所做的事情就是如此糟糕?

问题:你找了一个令人兴奋的夏季工作五周。比如每小时支付15.50美元。假设您为夏季工作收入支付的总税额为14%。缴纳税款后,您将花费10%的净收入购买下一学年的新衣服和其他配件,1%购买学习用品。购买衣服和学习用品后,您可以使用剩余资金的25%购买储蓄债券。对于您花费购买储蓄债券的每一美元,您的父母花0.50美元为您购买额外的储蓄债券。编写一个程序,提示用户输入一小时的工资率和每周工作的小时数。该程序然后输出以下内容:  一个。你暑期工作税前后的收入。  湾你花在衣服和其他配件上的钱。  C。你花在学习用品上的钱。  d。你用来购买储蓄债券的钱。  即你父母花的钱为你买额外的储蓄债券。

代码:

// Libraries defined 
#include <iomanip>  
#include <iostream> 

using namespace std; 

//Main function 
int main () 

{ 

//Input variables 
    double hourlyrate; 
    double hweek1; 
    double hweek2; 
    double hweek3; 
    double hweek4; 
    double hweek5; 

//Output variables 
    double beforetax; 
    double netincome; 
    double clothmoney; 
    double suppliesmoney; 
    double moneyonbonds; 
    double additionalbonds; 
    double remain; 

//This statement takes care of the decimal places 
    cout << fixed << showpoint << setprecision(2);  

//Input from user 
    cout << "Enter your hourly rate: " << hourlyrate; 
    cin >> hourlyrate; 
    cout << "Week 1: " << hweek1; 
    cin >> hweek1; 
    cout << "Week 2: " << hweek2; 
    cin >> hweek2; 
    cout << "Week 3: " << hweek3; 
    cin >> hweek3; 
    cout << "Week 4: " << hweek4; 
    cin >> hweek4; 
    cout << "Week 5: " << hweek5; 
    cin >> hweek5; 

//Mathematics 
    beforetax = hourlyrate * (hweek1 + hweek2 + hweek3 + hweek4+ 
    hweek5) ; 
    netincome = beforetax - beforetax * 0.14; 
    clothmoney = netincome * 0.1; 
    suppliesmoney = netincome * 0.01; 
    remain = netincome - clothmoney - suppliesmoney; 
    moneyonbonds = remain * 0.25; 
    additionalbonds = static_cast<double>(moneyonbonds) * .50; 

//Output to user 
    cout << endl << "Income before tax = $" << beforetax << endl 
    << "Net income = $" << netincome << endl << "Money for clothes/accesories = $"
    << clothmoney << endl << "Money for supplies = $"<< suppliesmoney << endl 
    << "Money for saving bonds = $" << moneyonbonds << endl 
    << "Additional saving bonds money = $" << additionalbonds; 


return 0; 
}

2 个答案:

答案 0 :(得分:4)

我收到了这个错误 enter image description here

cout << "Enter your hourly rate: " << hourlyrate;

您尝试在初始化之前输出变量。 这可能是无意的。

下一行是

cin >> hourlyrate

每个变量都是一样的。您应该初始化它们或不输出它们。

答案 1 :(得分:1)

你确定吗:

cout << "Enter your hourly rate: " << hourlyrate; 
cin >> hourlyrate; 
cout << "Week 1: " << hweek1; 
cin >> hweek1; 
cout << "Week 2: " << hweek2; 
cin >> hweek2; 
cout << "Week 3: " << hweek3; 
cin >> hweek3; 
cout << "Week 4: " << hweek4; 
cin >> hweek4; 
cout << "Week 5: " << hweek5; 
cin >> hweek5;

我认为你想要:

cout << "Enter your hourly rate: "; 
cin >> hourlyrate; 

而不是:

cout << "Enter your hourly rate: "<< hourlyrate; 
cin >> hourlyrate;