0

そのため、メイン関数 (入力した変数を含む配列) からデータを呼び出すのに問題があり、float getTotal関数に渡す方法がわかりませんでした。これが私のコードです:

#include <iostream>
#include <iomanip>

using namespace std;

float getTotal(float [], int )
   {
     double total = 0;
     for (int i=1; i<ARRAYSIZE; i++)
        {
           total += inputs[i];
        }
     cout << "The total rainfall for the year is " << total << "inches." << endl;
     return total;
   }

float getAverage(float [], int)
   {
     //code goes here
   }

int main()
   {
     const int ARRAYSIZE = 13;
     int inputs[ARRAYSIZE], i=1;
     do
        {
           cout << "Enter the rainfall (in inches) for month #" << i << ": ";
           cin >> inputs[i];
           if ( inputs[i] < 0 )
              {
                  cout << "Please enter a non-negative number for rainfall in month " << i << " :";
                  cin >> inputs[i];
              }
           i++;
        }
     while (i < 13);

     float getTotal(float inputs[], int ARRAYSIZE);
     float getAverage(float inputs[], int ARRAYSIZE);
   }

そこで、main から配列データを呼び出して、getTotal セクションで合計を計算したいと思います。私はさまざまな方法を試しましたが、どれもうまくいきませんでした。

4

4 に答える 4

0

こんにちは@ user2901840コードをわずかに変更すると、正常に実行できます。

#include <iostream>
#include <iomanip>

using namespace std;

float getTotal(float floatarray[], int size)
{
    float total = 0.0f;
    for (int i=0; i<size; i++)
    {
        total += floatarray[i];
    }
    return total;
}

float getAverage(float floatarray[], int size)
   {
        return (getTotal(floatarray, size))/size;
   }

int main()
   {
        int ARRAYSIZE = 12, i=0;
        float inputs[ARRAYSIZE];
        do
        {
            cout << "Enter the rainfall (in inches) for month #" << i << ": ";
            cin >> inputs[i];
            if ( inputs[i] < 0.0 )
                {
                    cout << "Please enter a non-negative number for rainfall in month " << i << " :";
                    cin >> inputs[i];
                }
            i++;
        }
        while (i < ARRAYSIZE);
        cout << "\n\nThe total rainfall for the year is " << getTotal(inputs, ARRAYSIZE) << " inches." << endl;
        cout << "The average rainfall per month during the year was: " << getAverage(inputs, ARRAYSIZE) << " inches."<< endl;
   }

クラスを正しく事前定義し、呼び出しを変更する必要がありました。私が持っているコードを明確にするために: - 一般的な C++ 規則に一致するように i 値の番号を付け直しました (12 の値に対して 0 から 11 を実行します) - コードを最小化するために関数を再利用しました - 配列を浮動小数点数の配列として再宣言しました (最初はそれを持っていました) int の配列として)

お役に立てれば:)

詳細や説明が必要な場合はお知らせください。詳細を記入できます。

于 2013-10-21T09:13:20.797 に答える
0

関数宣言を置き換えます。

float getTotal(float [], int )
float getAverage(float [], int)

これに

float getTotal(int* inputs, int ARRAYSIZE)
float getAverage(int* inputs, int ARRAYSIZE)

そして、main() 関数内のこの行:

float getTotal(float inputs[], int ARRAYSIZE);
float getAverage(float inputs[], int ARRAYSIZE);

これに

float getTotal(inputs, ARRAYSIZE);
float getAverage(inputs, ARRAYSIZE);
于 2013-10-21T05:21:41.053 に答える
0
float getTotal(float inputs[], int ARRAYSIZE)
   {
     double total = 0;
     for (int i=1; i<ARRAYSIZE; i++)
        {
           total += inputs[i];
        }
     cout << "The total rainfall for the year is " << total << "inches." << endl;
     return total;
   }

float getAverage(float inputs[], int ARRAYSIZE)
   {
     //code goes here
   }

int main()
   {
     const int ARRAYSIZE = 13;
     int inputs[ARRAYSIZE], i=1;
     do
        {
           cout << "Enter the rainfall (in inches) for month #" << i << ": ";
           cin >> inputs[i];
           if ( inputs[i] < 0 )
              {
                  cout << "Please enter a non-negative number for rainfall in month " << i << " :";
                  cin >> inputs[i];
              }
           i++;
        }
     while (i < 13);

     float fTotal = getTotal(inputs, ARRAYSIZE);
     float fAverage = getAverage(inputs, ARRAYSIZE);
   }
于 2013-10-21T05:20:23.883 に答える
0

ソースコードには非常に多くのエラーがあります。例 "int 入力 [ARRAYSIZE]" 。配列は int データ型ですが、この配列を float データ型として渡しています。コンパイル
エラーがあります。次に、関数とそのデータ型をメイン関数の外で宣言する必要があり
ますが、メイン関数内で実行しています。別のコンパイラ エラーがあります。関数を呼び出すときに、引数のデータ型を指定する必要はありません。だから私が書いた可能性のあるコードがあります、それがあなたを助けることを願っています.

#include <iostream>
#include <iomanip>

using namespace std;

float getTotal(int *inputs, int ARRAYSIZE )
  {
   double total = 0;
     for (int i=1; i<=ARRAYSIZE; i++)
      {
        total += inputs[i];
      }
      cout << "The total rainfall for the year is " << total << "inches." << endl;
  return total;

}

 float getAverage(int *inputs, int ARRAYSIZE)
    {
     //code goes here

    return 1.4;
   }

 int main()
    {
     const int ARRAYSIZE = 3;
     int inputs[ARRAYSIZE], i=1;
     do
       {
       cout << "Enter the rainfall (in inches) for month #" << i << ": ";
       cin >> inputs[i];
       if ( inputs[i] < 0 )
          {
             cout << "Please enter a non-negative number for rainfall in month " << i     
                 << " :";
              cin >> inputs[i];
          }
       i++;
    }
 while (i <= 3);

     getTotal(inputs, ARRAYSIZE);
     getAverage(inputs, ARRAYSIZE);

return 0;

}

     While calling function, the return value you can store in variable but data type of   

      variable should be the same of return type of the function 

      e.g  float a = getTotal(inputs, ARRAYSIZE);
     float b = getAverage(inputs, ARRAYSIZE);
      or you can directly call this function in cout output command statement.like 

cout<< getTotal(inputs, ARRAYSIZE);

于 2013-10-21T06:27:34.343 に答える