1

したがって、変数hoursWorkedは初期化されません。しかし、ユーザーが保存しているものと同じにする場合、どのように初期化する必要がありますか?たとえば、私はhoursWorked誰もがそれに出力するものになりたいですcin。これが私のコードです:

#include <iostream>

using namespace std;

int main () 
{
   //Declare Variables
   double hoursWorked;
   double payRate;
   double incomeBeforeTax;

   payRate = 15;
   incomeBeforeTax = payRate * hoursWorked;

   cout << "Enter hours worked: ";
   cin >> hoursWorked;
   cout << endl;
   cout << incomeBeforeTax << endl; 

   return 0;
}
4

2 に答える 2

1

から読み取って初期化した後に、incomeBeforeTaxどの参照を実行する必要があるかを計算します。その行を後に移動すると、機能します。hoursWorkedcincin >> hoursWorked;

payRate = 15.0;

cout << "Enter hours worked: ";
cin >> hoursWorked;

incomeBeforeTax = payRate * hoursWorked;

cout << endl;
cout << incomeBeforeTax << endl;

C ++は、ほとんどの手続き型言語と同様に、記述された順序でコードを評価します。つまり、との現在の値に基づいてにincomeBeforeTax = payRate * hoursWorked;値を割り当てます。これらは、割り当てを実行する前に定義および初期化する必要があります。それが何をするかです。incomeBeforeTaxpayRatehoursWorkedcin >> hoursWorked

ちなみに、double変数はdoubleリテラルで初期化するのが最適なので.0、値に追加します。

于 2012-09-22T05:45:30.907 に答える
0

を使用して

incomeBeforeTax = payRate * hoursWorked;

初期化される前hoursWorkedに、あなたは何incomeBeforeTaxが必要かという意図を示しているようです。その意図を維持する1つの方法は、関数を作成し、必要なときにいつでもその関数を使用することですincomeBeforeTax

例:

#include <iostream>

using namespace std;

int main () 
{
   //Declare Variables
   double hoursWorked;
   double payRate;

   // Define a function that encodes the intent of what
   // incomeBeforeTax needs to be.
   auto incomeBeforeTax = [&]() { return payRate*hoursWorked; };

   payRate = 15;

   cout << "Enter hours worked: ";
   cin >> hoursWorked;
   cout << endl;
   cout << incomeBeforeTax() << endl; 

   return 0;
}
于 2017-09-21T19:38:30.933 に答える