2016-03-20 11 views
2

せずにプログラムの終了を停止するのに役立つ必要があります。は、次のコードは次のように行うことになっているユーザーの同意

  1. 入力番号

にユーザーを尋ねるユーザー

  • で指定されたリストを作成します

    3.a)番号がリストにある場合は、表示番号* 2、手順2に戻る

    3.b)番号がリストにない場合、プログラムを終了する

    ステップ3.a)は、whileループの目的を無効にするプログラムも終了させます。ここ

    はコードです:

    #include <iostream> 
    #include <array> 
    using namespace std; 
    int main() 
    { 
    cout << "First we will make a list" << endl; 
    
    array <int, 5>list; 
    int x, number; 
    bool isinlist = true; 
    
    cout << "Enter list of 5 numbers." << endl; 
    
    for (x = 0; x <= 4; x++) 
    { 
        cin >> list[x]; 
    } 
    while (isinlist == true) 
    { 
        cout << "now enter a number on the list to double" << endl; 
        cin >> number; 
    
        for (x = 0; x <= 4; x++) 
        { 
         if (number == list[x]) 
         { 
          cout << "The number is in the list. Double " << number << " is " << number * 2 << endl; 
         } 
         else 
          isinlist = false; 
        } 
    } 
    return 0; 
    } 
    

    誰かが私がこれを解決するのに役立ちますしてください?

  • +0

    @therainmaker。ユーザーがリストにない番号を入力するまで、プログラムをループし続けたい。 –

    +0

    適切な回答が追加されました。 – therainmaker

    答えて

    0

    手順3の機能を別の機能にカプセル化することをお勧めします。次のように関数を定義し、main関数の適切な場所で関数を呼び出すことができます。

    void CheckVector(vector<int> yourlist) 
    { 
        .... // Take user input for number to search for 
        .... // The logic of searching for number. 
        if (number exists) 
        { 
        // cout twice the number 
        // return CheckVector(yourlist) 
        } 
        else 
        return; 
    } 
    

    同じ機能は、機能の必要性を回避する、goto声明で実現することができます。しかし、gotoを使用することは悪い習慣とみなされ、私はそれをお勧めしません。

    0

    リストの1つの値がユーザーの入力と等しくないとすぐにisinlistをfalseに設定することが問題です。

    whileループの先頭にisinlistをfalseに設定し、一致するものを見つけたらtrueに変更する必要があります。

    デバッガでコードを実行すると、問題を理解するのに役立ちます。私はそれを試してみることをお勧めします。

    関連する問題