-4

C++ で 4 つの要素の配列を宣言した場合、これらの要素は値を格納できますか? つまり、次の配列を宣言するとします。

#include <iostream>
int main()
{
    int a[4];
    double res;
    double avg;
    avg = res = 0.0; 
    for(int i=0; i<4; i++)
    {
        cout<<"Please enter age ";
        cin>> a[i];
    }

    for(int i=0; i<4; i++)
    {
        cout<< "You have entered these ages " <<a[i];
        cout<<endl;
        res += a[i];
    }

    avg = res/4;
    cout<< "Total is "<<res <<endl;
    cout<< "Avg is "<<avg;
}

上記のプログラムは整数(数値)配列を持つプログラムですが、文字配列では文字配列の要素に任意の値を割り当てることができますか?

4

3 に答える 3

3

はい。

Array は、同じ型と no の値のプレースホルダーです。of 個の場所は、配列の宣言時に予約されています。

int a[3];

3つのintを格納できることを意味します。a[0]a[1]およびとしてアクセスできますa[2]

これで、ループにある問題を確認できます。

for(int i=1; i<=4; i++)
{
    cout<<"Please enter age ";
    cin>> a[i];
}
  1. a[0]空のまま
  2. ループは 4 回実行a[1], a[2], a[3], a[4]されます。最後の 2 つのインデックスは予約されていません。

次のように修正できます。

for(int i=0; i<3; i++)
{
    cout<<"Please enter age ";
    cin>> a[i];
}

あなたの他の質問:

文字配列では、文字配列の要素の任意の値を割り当てることができます

いいえ、各インデックスには正確に 1 つが格納されますchar

char c[3];

正確に 3 秒を保存しcharます。他のインデックスを使用しようとすると、未定義の動作、セグメンテーション違反が発生する可能性があります。プロセスに割り当てられていないメモリにアクセスしようとしているためです。

于 2013-02-12T11:14:26.070 に答える
0

はい、宣言された要素は値を格納するために利用できます。

ただし、この例では、3 要素の配列のみを宣言しているため、配列要素a[0], a[1],a[2]. 配列要素にアクセスしているためa[1], a[2], a[3], a[4]、範囲外の状況が発生しています。

于 2013-02-12T11:13:59.337 に答える