2016-02-11 85 views
-2

should be getting the output on the picture**税表显示三列:年薪,税率和要缴纳的税额。下面的程序显示大部分代码需要计算个税表For Loop输出问题

#include <iostream> 
using namespace std; 
enter code here 

int main() { 
int INCOME_INCREMENT  = 5000; 
int annualSalary   = 0; 
double taxRate    = 0.0; 
int taxToPay    = 0; 
int startingAnnualSalary = 40000; 40000 
int endingAnnualSalary = 60000; 60000 

cout << "Enter first annual salary for the table: " << endl; 
cin >> startingAnnualSalary; 
cout << "Enter last annual salary for the table: " << endl; 
cin >> endingAnnualSalary; 
cout << "Enter the increment for the table: " << endl; 
cin >> INCOME_INCREMENT; 





for (int i = 0 ; i < 9 ; i++){ 


// Determine the tax rate from the annual salary 
if (annualSalary <= 0) { 
    taxRate = 0.0; 
    } 
else if (annualSalary <= 20000) { 
    taxRate = 0.10; // 0.10 is 10% written as a decimal 
    } 
else if (annualSalary <= 50000) { 
    taxRate = 0.20; 
    } 
else if (annualSalary <= 100000) { 
    taxRate = 0.30; 
    } 
else { 
    taxRate = 0.40; 
    } 

taxToPay = static_cast<int>(annualSalary -taxToPay * taxRate); // Truncate tax to an integer amount 
cout << "Annual salary: " << annualSalary << 
      "\tTax rate: " << taxRate << 
      "\tTax to pay: " << taxToPay << endl; 

// FIXME: Be sure to include the closing brace for the for loop 
} 
return 0; 
} 
+1

呃,以及,你的问题是什么?怎么了?应该发生什么(没有外部链接)?请提供[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)和具体问题... – Anedar

+0

欢迎来到Stack Overflow!这听起来像你可能需要学习如何使用调试器来遍历代码。使用一个好的调试器,您可以逐行执行您的程序,并查看它与您期望的偏离的位置。如果你打算做任何编程,这是一个重要的工具。进一步阅读:** [如何调试小程序](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver

+0

改变程序询问用户除了开始和结束的年薪以外,还可以使用增量。 再次使用2500的增量运行该程序。40000,45000,50000,55000和60000的条目是否与之前相同 –

回答

0

你不从输入赋值annualSalary

你应该尝试这样的:

#include <iostream> 
using namespace std; 

int main() { 
    int INCOME_INCREMENT  = 5000; 
    int annualSalary   = 0; 
    double taxRate    = 0.0; 
    int taxToPay    = 0; 
    int startingAnnualSalary = 40000; //40000 <-- comment out 
    int endingAnnualSalary = 60000; //60000 <-- comment out 

    cout << "Enter first annual salary for the table: " << endl; 
    cin >> startingAnnualSalary; 
    cout << "Enter last annual salary for the table: " << endl; 
    cin >> endingAnnualSalary; 
    cout << "Enter the increment for the table: " << endl; 
    cin >> INCOME_INCREMENT; 


    annualSalary = startingAnnualSalary; // Set the start value 


    while(annualSalary <= endingAnnualSalary){ // Loop until reaching end value 
     // Determine the tax rate from the annual salary 
     if (annualSalary <= 0) { 
      taxRate = 0.0; 
     } 
     else if (annualSalary <= 20000) { 
      taxRate = 0.10; // 0.10 is 10% written as a decimal 
     } 
     else if (annualSalary <= 50000) { 
      taxRate = 0.20; 
     } 
     else if (annualSalary <= 100000) { 
      taxRate = 0.30; 
     } 
     else { 
      taxRate = 0.40; 
     } 

     taxToPay = static_cast<int>(annualSalary * taxRate + 0.5); // Correct calculation 
                    // Add 0.5 for correct rounding 
     cout << "Annual salary: " << annualSalary << 
        "\tTax rate: " << taxRate << 
        "\tTax to pay: " << taxToPay << endl; 

     annualSalary += INCOME_INCREMENT; // Update annualSalary for next loop 
    } 
    return 0; 
} 

输出:

Annual salary: 40000 Tax rate: 0.2 Tax to pay: 8000 
Annual salary: 42500 Tax rate: 0.2 Tax to pay: 8500 
Annual salary: 45000 Tax rate: 0.2 Tax to pay: 9000 
Annual salary: 47500 Tax rate: 0.2 Tax to pay: 9500 
Annual salary: 50000 Tax rate: 0.2 Tax to pay: 10000 
Annual salary: 52500 Tax rate: 0.3 Tax to pay: 15750 
Annual salary: 55000 Tax rate: 0.3 Tax to pay: 16500 
Annual salary: 57500 Tax rate: 0.3 Tax to pay: 17250 
Annual salary: 60000 Tax rate: 0.3 Tax to pay: 18000 

一个非常糟糕的税收制度!如果支付50.000,你将得到比支付52.500更多的钱:-)

+0

不知何故我短小一年薪年底输出 年薪:40000 \t税率:0.2 \t纳税额:8000 年薪:42500 \t税率: 0.2 \t税,以支付:8500 年薪:45000 \t税率:0.2 \t税,以支付:9000 年薪:47500 \t税率:0.2 \t税,以支付:9500 年薪:50000 \t税率:0.2 \t纳税额:10000 年薪:52500 \t税率:0.3 \t纳税额:15750 年薪:55000 \t税率:0.3 \t纳税额度:16500 年薪:57500 \t税率:0.3 \t纳税额:1 –

+0

查看更新:'<='而不是只是'<= – 4386427