0

次の配列を検討してください。

arr[0][0] = 5.42; // val
arr[0][1] = (int)1;    // freq
arr[1][0] = 41.45;
arr[1][1] = (int)1; // freq
arr[2][0] = 10.55;
arr[2][1] = (int)1;// freq
arr[3][0] = 78.55;
arr[3][1] = (int)1;// freq

(非累積的な) 度数分布表を表すと想定されています。したがって、各値の頻度は 1 です。

次の関数を考えてみましょう:

      const int SIZE = 1;
    double standardDeviation(double list[][SIZE], double mean, int size) {
    double sumSquared = NULL;
    double sum = NULL;
    double sumFx = NULL;
    int sumFreq = NULL;
    for(int i = 0; i < size; i++)
        sumFreq += list[i][1]; 

    return sumFreq;
    }

(明らかにいくつかのコードが欠落しています)しかし、現在のコードでは、私の目的は頻度の合計を返すことです。これは4である必要がありますが、インデックス[i] [0]を持つ配列のメンバーからのみ値を返しています-基本的に、その価値。

理由はありますか?

4

2 に答える 2

2

以下があるため、配列が正しくアクセスされていません。

const int SIZE = 1;

次のようにする必要があります。

const int SIZE = 2;

余談ですが、これらの初期化はどれも意味がありません。

double sumSquared = NULL;
double sum = NULL;
double sumFx = NULL;
int sumFreq = NULL;

NULLはい、そうですが0、意味的にはヌルポインターを示すために使用されることを意図しており、これらの変数はいずれもポインターではありません。

于 2013-04-13T16:59:11.990 に答える
1

パラメータは として宣言されdouble list[][1]ます。

範囲list[i][1]外も同様です。

于 2013-04-13T16:59:05.040 に答える