-12

以下のコードを実行しようとするたびに、2 つのエラーが表示されます。どちらのエラーも、43 行目と 56 行目で「識別子 "配列" が定義されていません。

この問題の原因は何ですか?どうすれば解決できますか?

#include <iostream>

using namespace std;

typedef double* arrayT;

double avg(arrayT data, int length);
double min(arrayT data, int length);
double max(arrayT data, int length);

int main()
{
    cout << "Please input the number of temperatures to be read." << endl;
    int num;
    cin >> num;
    arrayT temperatures = new double[num];

    for(int i = 0; i < num; i++)
    {
        cout << "Input temperature " << (i+1) << ":" << endl;
        cin >> temperatures[i];
    }

    cout << "The average temperature is " << avg(temperatures, num) << endl;
    cout << "The highest temperature is " << max(temperatures, num) << endl;
    cout << "The lowest temperature is " << min(temperatures, num) << endl;
}

double avg(arrayT data, int length)
{
    double sum = 0.0;

    for(int i = 0; i < length; i++)
        sum += data[i];
    return sum/length;
}

double min(arrayT data, int length)
{
    if(length == 0)
        return 0;

    double min = array[0];

    for(int i = 1; i < length; i++)
        if(array[i] < min)
            min = array[i];
    return min;
}

double max(arrayT data, int length)
{
    if(length == 0)
        return 0;

    double max = array[0];

    for(int i = 1; i < length; i++)
        if(array[i] > min)
            max = array[i];
    return max;
}
4

1 に答える 1

3

min 関数と max 関数では、'data' という名前のパラメーターがありますが、関数本体では、'array' で呼び出します。

double min(arrayT data, int length)
{
..
// here
    double min = array[0];

..
}

double max(arrayT data, int length)
{
..
// here
    double max = array[0];
..
}
于 2013-05-06T15:59:44.797 に答える