我正在开发一个彩票应用程序,其中计算机生成5个随机数并将它们存储到下标中。出于某种原因,我的数组在我的代码中输出字母和数字。任何人都可以告诉我为什么会发生这种情况?
#include <iostream>
#include <iomanip>
#include <random>
#include <ctime>
#include <time.h>
using namespace std;
int main(){
const int digits = 5;
int winningDigits[digits];
srand(time(0));
winningDigits[0] = rand() % 10 + 1;
winningDigits[1] = rand() % 10 + 1;
winningDigits[2] = rand() % 10 + 1;
winningDigits[3] = rand() % 10 + 1;
winningDigits[4] = rand() % 10 + 1;
cout << winningDigits;
答案 0 :(得分:3)
cout << winningDigits;
是打印数组的地址而不是数组的内容。您看到字母和数字的原因是地址显示在hexidecimal
中您可以使用ranged based for loop打印数组:
for (const auto& e : winningDigits)
cout << e << " ";
答案 1 :(得分:0)
要显示阵列,您可以使用:
for (int i = 0; i < digits; i++)
cout << winningDigits[i];
cout&lt;&lt; winningDigits;不访问您的数组的每个成员。它为您提供了地址。
您还可以通过将所有内容放入for循环来简化程序:
for (int i = 0; i < digits; i++)
{
winningDigits[i] = rand() % 10 + 1;
cout << winningDigits[i] << " ";
}