2015-09-08 3 views
1

Я работаю над лотерейным приложением, где компьютер генерирует 5 случайных чисел и сохраняет их в подстроках. По какой-то причине мой массив выводит буквы и цифры в моем коде. Может ли кто-нибудь дать мне представление о том, почему это может произойти?C++ Array, отображающий буквы и цифры?

#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

Для отображения массива можно использовать:

for (int i = 0; i < digits; i++) 
     cout << winningDigits[i]; 

cout < < winDigits; не получает доступ к каждому члену вашего массива. Он дает вам адрес.

Вы также можете упростить вашу программу, поставив все в цикле:

for (int i = 0; i < digits; i++) 
{ 
    winningDigits[i] = rand() % 10 + 1; 
    cout << winningDigits[i] << " "; 
} 
3
cout << winningDigits; 

печатает адрес массива, а не содержимое массива. Причина вы видите буквы и цифры, это адрес отображается в hexidecimal

Вы можете распечатать свой массив с ranged based for loop как:

for (const auto& e : winningDigits) 
    cout << e << " "; 
Смежные вопросы