2016-12-06 9 views
-7

任意のアイデア..? 例えば、整数配列の要素数がそのサイズと等しくない

int a[50],b; // b is for getting the input Yes or maybe no 
while(b=='Y') 
{cin>>a[i];i++;cin>>b;} 

と私はパラメータとしてのみアレイとサイズを取る必要があります機能を使用する必要がelements.Nowユーザーは25を入力したと言う... は、どのように私は数を計算します関数内でユーザーが入力した要素の数..? 出力はこの場合25にする必要があります。

+1

あなたは単純にできません。 –

+2

実際のインデックスがわからない場合、どのように値を挿入しましたか? – mch

+0

whileループを使用しています!..入力がはいになるまでのように、ユーザーは値を提供できます... @ mch – Akilesh

答えて

0

カウンタ変数と、各入力とともに増加するユーザー入力を使用することをお勧めします。配列内の多くのインデックスをループするだけです。

int counter = 0; 
int a[50]; 

// collect input, counter++ each time 

for(int i = 0; i < counter; i++) 
    cout << a[i]; 

ベクターを使用する方がずっと良いでしょう。それらは自動的にサイズを決めるので、サイズ()関数を使用して全体を印刷するだけです。

+0

私は言った...私は増分のためのカウンタ変数を使用していません... – Akilesh

+1

それでは、配列でこのタスクを達成することは不可能です。カウンタを実装するだけではどうですか? –

+1

そしてどのように配列をループすることができますか?ポインタを使う? – LPs

3

この目的のためにstd::listまたはstd::vectorを使用できます。

+3

質問には 'C'言語タグがあります。私たちの中には、私たち自身のリストとベクトルを回転させるものがあります。 :-) –

+0

'C'タグが削除されたようですので、C++のコンテナは有効な答えです。 –

-1

カウンタ変数を使用して配列要素の数を計算します。例えば

ここで配列サイズが50であるが、要素の数が10あります。

#include<stdio.h> 

int main() 
{ 
    int i,cnt = 0; 
    int arr[50] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 
    for (i = 0; arr[i] != '\0'; i++) 
    { 
     cnt++; 
    } 
    printf("%d\n",cnt); 
} 
関連する問題