【问题标题】:Loop in visual studio在视觉工作室循环
【发布时间】:2013-11-20 20:36:29
【问题描述】:

我们应该创建一个接受 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");

}

我有两个问题:

  1. 不知道用户输入负数时如何结束程序。

  2. 在输入第二个号码后,程序不会“输入下一个电话号码或输入负数停止”。

【问题讨论】:

    标签: c++ visual-studio loops


    【解决方案1】:
    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;
    

    【讨论】:

      【解决方案2】:

      问题一:

      • 您可以检查是否定的并使用关键字break 退出while 循环。

      问题2:

      • 在 while 循环中放置:cout &lt;&lt; "Enter a telephone number or enter a negative number to stop ";

      【讨论】:

      • 在 while 结束时错过了 std::cout。 Anjruu 的答案可能是这里的正确答案。
      猜你喜欢
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      相关资源
      最近更新 更多