2016-12-12 5 views
-3

私のプログラムでは、ユーザーは50個の数字を入力でき、合計と平均を与えることができます。私の配列のサイズは50で固定されています。ユーザーは50以上の数字を入力することはできませんが、少ない数字を入力することができます。私の考えは、ユーザーに番号の入力を促すのを止めるために 'q'を入力することです。どうすればいい?C++ユーザーが配列サイズを決定する方法

for (int i = 0; i < ARRAY_SIZE; i++) { 
 
    cout << "Enter Number: "; 
 
    cin >> array[i]; 
 
}

+4

配列が50に制限されている場合でも、あなたは以下を受け入れることができます - あなたのアイデアをqと入力しますいいですが、「どうすればいい?」と言うときに何が必要なのか分かりません。入力を文字列として受け入れ、qをチェックしてから番号に変換して保存してください。 –

+1

私は既存のforループに 'q'を追加する手助けが必要です – user38099

+1

番号ではないものを入力するとあなたのコードはどうなりますか? –

答えて

0

あなたが入力した文字列を必要として、あなたは数に変換する前に文字列をqであるかどうかを確認:

#include <iostream> 
#include <algorithm> 
#include <iterator> 

int main() 
{ 
    const int ARRAY_SIZE=50; 
    int array[ARRAY_SIZE]; 
    std::string temp; 
    int items; 

    for(items=0; items<ARRAY_SIZE; items++){ 
     std::cout << "Enter Number: "; 
     std::cin >> temp; 
     if(temp=="q" || temp=="Q") break; 
     array[items] = atoi(temp.c_str()); 
    } 

    std::cout << items << " items entered:\n"; 
    std::copy(array, array+items, std::ostream_iterator<int>(std::cout,"\n")); 

    return 0; 
} 
-2
int ARRAY_SIZE = 0; 
for(int i=0; i < 50; i++){ 
    cout << "Enter Number: "; 
    cin >> array[i]; 
    if(array1[i] == 'q') 
     break; 
    ARRAY_SIZE++; 
} 
int* array2 = new int[ARRAY_SIZE]; 
for(int i=0; i < ARRAY_SIZE; i++ 
    array2[i] = array[i]; 

...その後配列1を削除します。これは、ユーザーがarray2のサイズを決定するように動作します。最大サイズは50ですが、可変サイズです。

希望があれば、これは私の最初の回答ですので、悪い場合はごめんなさい。

+3

'array1'の型が' int'の場合、文字 'q'を入力すると動作しません。 – Galik

関連する問題