2016-03-23 8 views
-2

Я пишу этот код и в classifykids(), я заполняю 4 новых массива из массива x. После этого я пытаюсь напечатать элементы в массиве 4, но это не работает со мной, его отпечатки длинные номераКак напечатать элементы массива в C++?

#include <iostream> 
using namespace std; 

int *readkid(){ 
int * kids = new int[4]; 
int counter=1; 
for (int i=0; i<4 ; i++){ 
    cout << "Enter the age for kid number " << counter << ":[ 1 to 10]  " << endl; 
    cin >> kids[i]; 
    counter++; 
} 
return kids; 
} 

void classifyKids (int * x){ 



int * perk = new int[20]; 
int * kg1 = new int[20]; 
int * kg2 = new int[20]; 
int * elementry = new int[4]; 


for (int i=0; i <21; i++){ 
    if (x[i] < 3){ 
     perk[i] = x[i]; 
    } else if (x[i] < 3 && x[i] > 3) { 
     kg1[i] = x[i]; 
    } else if(x[i] > 6 && x[i] > 4){ 
     kg2[i] = x[i]; 
    } else if(x[i] > 6){ 
     elementry[i] = (x[i]); 
    } 

} 
for(int i=0; i<4;i++) 
    cout << "Here is it :" << elementry[i] << endl; 

    } 



int main() { 

int *x; 
x = readkid(); 
classifyKids(x); 

/* 
for (int i=0; i<4; i++){ 
cout << *(x+i) << endl; 
} 
*/ 

return 0; 

} 
+0

Как только у вас есть работа. Возможно, стоит посетить http://codereview.stackexchange.com, чтобы получить комментарии к лучшему стилю. –

+0

Я вижу ошибку компилятора. 'x' имеет только 4 элемента, в то время как вы пытаетесь получить доступ к 21 элементу! – CinCout

+1

'if (x [i] < 3 && x[i] > 3)' какое это условие? –

ответ

0

В чем может быть проблема? Вы знаете, как получить доступ к элементу массива, а также принять ввод в массив. Так почему вы не можете печатать?

Предположим, если обр это массив вы хотите печатать, который имеет 4 элемента, то он идет таким образом:

for(int i=0;i<4;i++) 
    cout<< arr[i] <<" "; 

Почему он печатает номера: Вы вводите (х + I). Оба x и i являются целыми числами с некоторым значением. Возможно, x имеет большое значение, которое добавляет withi, создает напечатанное число. Если вы хотите напечатать элемент с индексом х + I, то coutstatement будет:

cout << arr[x+i] << " "; 

где обр это массив вы хотите напечатать.

+0

Я исправил проблему .. и я напечатал элементы .. – user3718562

+0

, но у меня возникла еще одна проблема. Если элемент [21] получил только 1 номер от x [], то он собирается напечатать 1 0 0 0 0 0 0 .. как разрешить печать только 1 – user3718562

+0

Вы пытаетесь преобразовать двоичное число, сохраненное в массиве, в десятичное? –

Смежные вопросы