填充数组

时间:2012-08-07 19:51:01

标签: c++ arrays random

你可以帮我解决用随机数填充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;
}

目前输出如下:

下面是第二个数组中五个圆圈的半径。 002CF878

我哪里错了?

非常感谢任何帮助

4 个答案:

答案 0 :(得分: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";

答案 1 :(得分:1)

填充数组的方式是正确的,但是您无法打印这样的数组。您需要编写一个循环来逐个输出值。

答案 2 :(得分:0)

在C(和C ++)中,数组几乎等同于指向内存位置开头的指针。所以你只是输出第一个元素的地址; 输出所有元素引入另一个循环:

for(int i = 0; i < NUM; ++i) 
{
    cout << CircleArrayTwo[i] << endl;
}

答案 3 :(得分:-1)

CircleArrayTwo是一个指针。当您打印指针时,它会打印一个内存地址,就像您提供的那样。要打印数组的值,您需要使用插入的[]表示法。

您可以遍历数组中的值并打印每个值:
    for (int i = 0; i < NUM; ++i) { cout << CircleArrayTwo[i] << endl; }