1

15 の電話番号を受け入れるプログラムを作成することになっています。すべての数字は 8 桁で構成されます。固定回線は 17 から始まり、携帯回線は 39 から始まります。Prog は、固定回線と携帯回線の数をカウントする必要があります。また、ユーザーが負の数を入力すると、prog は停止する必要があります。

これが私のコードです:

#include <iostream>
using namespace std;
void main ()
{

int n, c=1, cm=0, cf=0;

cout << "Enter a telephone number or enter a negative number to stop ";

while (c <= 15){
    cin >> n;

    if (n/1000000 == 39){
        c++;
        cm++;
    }

    else if (n/1000000 == 17){
        c++;
        cf++;
    }

    else cout << "Wrong telephone number" << endl;

    cout << "Enter the next telephone number or enter a negative number to stop ";
    cin >> n;

}

cout << "The number of fixed lines is " << cf << endl;
cout << "The number of mobile lines is " << cm << endl;

system ("PAUSE");

}

2 つの問題があります。

  1. ユーザーが負の数を入力したときにプログラムを終了する方法がわかりません。

  2. プログラムは、2 番目の番号を入力した後、「次の電話番号を入力するか、マイナスの番号を入力して停止します」とカウントしません。

4

2 に答える 2

3
  1. breakユーザーが負の数を入力したときにループを停止するには、ステートメントを使用する必要があります
  2. ロジックがどのように機能するかを確認してください: ループの最後で文字列を出力し、番号を要求し、ループの先頭に移動して、再び番号を要求します

次のコードを検討してください。

int n, c=1, cm=0, cf=0;
while (c <= 15) {
    std::cout << "Enter the next telephone number or enter a negative number to stop ";
    std::cin >> n; // output prompt and ask for number only once per loop iteration
    if (n <= 0)
        break; // ends while loop if user entered incorrect value
    if (n/1000000 == 39)
        cm++, c++;
    else if (n/1000000 == 17)
        cf++, c++;
    else
        std::cout << "Wrong telephone number" << std::endl;
}
std::cout << "The number of fixed lines is " << cf << std::endl;
std::cout << "The number of mobile lines is " << cm << std::endl;
于 2013-11-08T18:20:12.397 に答える
0

問題 1:

  • 否定をチェックし、キーワードを使用しbreakて while ループを終了できます。

問題 2:

  • 場所: cout << "Enter a telephone number or enter a negative number to stop ";while ループ内。
于 2013-11-08T18:16:01.953 に答える