1

5 つの円の配列に乱数を設定する際の問題について教えてください。乱数は円の半径になります。これが私のコードです:

#include <iostream>
#include <time.h>
using namespace std;

int main()
{
    // Array 2, below section is to populate the array with random radius
    float CircleArrayTwo [5]; // store the numbers
    const int NUM = 5; // Display 5 random numbers

    srand(time(NULL)); // seed the generator

    for(int i = 0; i < NUM; ++i)
    {
        CircleArrayTwo[i] = rand()%10;
    }

    cout << "Below is the radius each of the five circles in the second array. " <<   endl;
    cout << CircleArrayTwo << endl;

    system("PAUSE");
    return 0;
}

現在、次のように出力されます。

以下は、2 番目の配列の 5 つの円のそれぞれの半径です。002CF878

どこが間違っていますか?

どんな助けでも大歓迎です

4

4 に答える 4

5

配列の最初の要素のアドレスを出力しています。配列をループして、各要素を出力できます。

for(int i = 0; i < NUM; ++i)
{
    std::cout << CircleArrayTwo[i] << ", ";
}
std::cout << "\n";

または、C++11 をサポートしている場合は、

for (auto& x : CircleArrayTwo) {
   std::cout << x << ", ";
}    
std::cout << "\n";
于 2012-08-07T19:52:40.973 に答える
1

配列に入力した方法は正しいですが、そのような配列を印刷することはできません。値を 1 つずつ出力するには、ループを記述する必要があります。

于 2012-08-07T19:54:40.510 に答える
0

C(およびC ++)では、配列はメモリ位置の先頭へのポインタとほぼ同等です。つまり、最初の要素のアドレスを出力しているだけです。すべての要素を出力するには、別のループを導入します。

for(int i = 0; i < NUM; ++i) 
{
    cout << CircleArrayTwo[i] << endl;
}
于 2012-08-07T19:55:54.563 に答える
-1

CircleArrayTwoポインタです。ポインターを印刷すると、指定したようなメモリアドレスが印刷されます。配列の値を出力するに[]は、挿入用の表記法を使用する必要があります。

配列内の値をループして、それぞれを出力できます。
for (int i = 0; i < NUM; ++i) { cout << CircleArrayTwo[i] << endl; }

于 2012-08-07T19:58:13.217 に答える