0

助けが必要です。いくつかの変数を取り込んで、ある人の正味給与を計算するプログラムを作成しようとしています。この場合、速度のために定数を作成しました。

これらの変数は次のとおりです。名前 Mary、勤務時間 (35)、時給 (10.50)、総賃金 (367.50)、税金 (@20%=73.50)、PRSI (@2.5% =9.19)、組合費 (3.50)。

これらはすべて計算されて、正味賃金が求められます。

これは簡単だと思いましたが、どこで間違ったのか理解できません。私のコードは次のとおりです。

#include <iostream>
#include <string>
using namespace std;

double net_pay (double hours, double gpay, double hrate, double dues,double tax, double taxr,double prsir,double prsi);

int main()
{

    string name;
    const double hrate = 10.50;
    const double taxr = .2;
    const double prsir = .025;
    const double dues = 3.50;
    const int hours = 35;
    cout << "enter name";
    cin >> name;

    net_pay ( hours,  gpay,  hrate, dues, taxr, tax, prsi, prsir);
    cout << name;
    cout << net_pay;


return 0;
}

double net_pay (double hours, double gpay, double hrate , double dues , double taxr, double tax , double prsi , double prsir) {

    gpay = hours * hrate;
    tax = gpay * taxr;
    prsi = prsir * gpay;
    return net_pay = gpay - (tax+prsi+dues);

}

//taxr = taxrate....prsir = prsirate....gpay = grosspay
4

3 に答える 3

2

戻り変数 net_pay は関数の名前です。単に行う:

double net_pay (double hours, double gpay, double hrate , double dues , double taxr, double tax , double prsi , double prsir) {

    gpay = hours * hrate;
    tax = gpay * taxr;
    prsi = prsir * gpay;
    return gpay - (tax+prsi+dues);

}

そしてそれはあなたのメインで宣言されていません:

int main()
{

string name;
const double hrate = 10.50;
const double taxr = .2;
const double prsir = .025;
const double dues = 3.50;
const int hours = 35;
cout << "enter name";
cin >> name;

double n_pay_var = net_pay ( hours,  gpay,  hrate, dues, taxr, tax, prsi, prsir);
cout << name;
cout << net_pay_var;


return 0;
}

net_pay() 関数呼び出しのために、すべての変数をメインで宣言する必要はありません。gpay, tax and prsi.

そう :

int main()
{

string name;
const double hrate = 10.50;
const double taxr = .2;
const double prsir = .025;
const double dues = 3.50;
const int hours = 35;
cout << "enter name";
cin >> name;


double tax ;//SET IT
double gpay;//SET IT
double prsi;//SET IT


cout << name;
cout << net_pay ( hours,  gpay,  hrate, dues, taxr, tax, prsi, prsir);


return 0;
}

double net_pay (double hours, double gpay, double hrate , double dues , double taxr, double tax , double prsi , double prsir) {

gpay = hours * hrate;
tax = gpay * taxr;
prsi = prsir * gpay;
return gpay - (tax+prsi+dues);

}
于 2013-04-19T13:44:09.183 に答える
2

定義されていない引数で関数を呼び出しています:

net_pay ( hours,  gpay,  hrate, dues, taxr, tax, prsi, prsir); // No no!
                  ^^^^                      ^^^  ^^^^

それらはメインでは定義されていません。を呼び出す前にgpaytaxを定義してみてください。prsinet_pay

 

また、値を返すときは、その関数に設定する必要はありません:

return net_pay = gpay - (tax+prsi+dues);  // No no!
       ^^^^^^^^^

ただ

return gpay - (tax+prsi+dues);

 

さらにnet_pay、変数に結果を格納します。

double r = net_pay(hours,  gpay,  hrate, dues, taxr, tax, prsi, prsir);

cout << name;
cout << r;
cout << endl;
于 2013-04-19T13:44:48.323 に答える
1

このステートメントはエラーが発生したと思います。

return net_pay = gpay - (tax+prsi+dues);

net_pay は変数ではなくメソッド名なので、次のように変更します。

return gpay - (tax+prsi+dues);
于 2013-04-19T13:45:29.123 に答える