我收到的錯誤是:
錯誤:未宣告“NoOfHours”。
它與taxrate, salary,tax和相同netpay。
我正在尋找的輸出是使用從用戶收集的資料的表:
| Name | Position | No. Of Hours | Salary |Tax|netpay|
| -------- | -------------- |----------------|------------|---|-|
| Mary | Laborer | 8 |500|25|475
| john | Laborer | 8 |500|25|475
類似于上表的東西。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int Laborer = 500;
int Foreman = 750;
int Manager = 1500;
int RatePerDay [3];
int n;
cout << "Enter No. of Employees: ";
cin >>n;
cout << endl;
string Name [n];
string Position [n];
for ( int i=0; i<n; i ){
float NoOfHours [i];
float TaxRate [i];
float Salary [i];
float Tax [i];
float NetPay [i];
float TotalSalary[i];
float TotalTax[i];
float TotalNetPay[i];
cout << "Enter Name: ";
cin >> Name[i];
cout << "Enter the position: ";
cin >> Position[i];
cout << "Enter No. of Hours Worked: ";
cin >> NoOfHours[i];
cout << endl;
if (Position[i]=="Laborer")
{RatePerDay[i] = Laborer;
TaxRate[i] = 0.05;}
else if (Position[i]=="Foreman")
{RatePerDay[i] = Foreman;
TaxRate[i] = 0.08;}
else (Position[i]=="Manager");
{RatePerDay[i] = Manager;
TaxRate[i] = 0.10;}
Salary[i] = NoOfHours[i] * RatePerDay[i] / 8;
Tax[i] = Salary[i] * TaxRate[i];
NetPay[i] = Salary[i] - Tax[i];
TotalSalary[i] = TotalSalary[i] Salary[i];
TotalTax[i] = TotalTax[i] Tax[i];
TotalNetPay[i] = TotalNetPay[i] NetPay[i];
}
cout <<setw(1) <<right<< "Name of Employee"
<<setw(15) <<right<< "Position"
<<setw(15) <<right<< "No of Hours"
<<setw(15) <<right<< "RatePerDay"
<<setw(15) <<right<< "Salary"
<<setw(15) <<right<< "TaxRate"
<<setw(15) <<right<< "Tax"
<<setw(15) <<right<< "NetPay"<<endl;
cout << "============================================================================================================================"<<endl;
// I received the errors here.
for ( int i=0; i<n; i ){
cout << setw(23) <<setfill(' ')<<left<< Name[i]
<< setw(17) <<setfill(' ')<<left<< Position[i]
<< setw(14) <<setfill(' ')<<left<< NoOfHours[i]
<< setw(17) <<setfill(' ')<<left<< RatePerDay[i]
<< setw(14) <<setfill(' ')<<left<< Salary[i]
<< setw(18) <<setfill(' ')<<left<< TaxRate[i]
<< setw(12) <<setfill(' ')<<left<< Tax[i]
<< setw(15) <<setfill(' ')<<left<< NetPay[i]<<endl;
}
return 0;
}
uj5u.com熱心網友回復:
大多數陣列都在第一個回圈內宣告,因此當第二個回圈嘗試訪問它們時它們超出范圍。修復代碼的縮進,這樣問題就會更容易看到。
您需要將受影響的陣列移到第一個回圈之外RatePerDay,與、Name和Position陣列1處于同一級別。
1:順便說一句,可變長度陣列不是標準 C 。std::vector當您需要一個直到運行時才知道大小的陣列時,請改用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/517235.html
標籤:C
上一篇:獲取頂層3d噪聲
