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;
}

目前输出如下:

下面是第二个数组中五个圆的半径。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

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

于 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 回答