2016-03-23 14 views
-2

私はこのコードを書いていますが、classifykids()では、x配列から4つの新しい配列を作成しています。その後、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

何が問題になる可能性がありますか?配列要素にアクセスする方法と、配列に入力する方法も知っています。なぜあなたは印刷できませんか?

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

それは数字を印字理由: あなたは(X + i)を入力し

は、ARRは、4つの要素を持つ配列あなたたくプリントであれば、それはこのようになったとします。 xとiはどちらも整数で、ある値をとる。たぶんxは大きな値を持っていて、withiは数字を出力します。要素をインデックスx + iに印刷する場合は、次のようになります。

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

ここで、arrは印刷する配列です。

+0

私は問題を.. ..と私は要素を印刷しました.. – user3718562

+0

しかし、私は別の問題を抱えて.. elementry [21] x [] ..から1つの番号を取得した場合は、1 0 0 0 0 0 .. 1のみを印刷させる方法 – user3718562

+0

配列に格納されている2進数を10進数に変換しようとしていますか? –