如何查找数组中特定值的第一次和最后一次出现?

时间:2014-10-12 22:44:37

标签: c++

我应该编写一个程序,从用户那里读取一系列数字,并在第一个和第一个时输出。最后一次输入数字12。我可以在最后一次输入12时输出程序,但我不知道如何找出前12次发生的时间。任何帮助将不胜感激。

这是我到目前为止的代码。

#include <iostream>
using namespace std;

int main()
{
int counter = 1, first, last, number, num;

cout << "How many numbers will you enter: ";
cin >> number;

While (counter <= number)(
cout << "Number: ";
cin >> num;

if (num == 12)
{
last = counter;
}
Counter++;
)
return 0;
}

编辑&amp;运行

1 个答案:

答案 0 :(得分:2)

像这样:

#include <iostream>

int main()
{
    int first = -1, last = -1;

    for (int n, i = 0; std::cin >> n; ++i)
    {
        if (n != 12) { continue; }
        if (first == -1) { first = i; }
        last = i;
    }

    if (first != -1)
    {
        std::cout << "First time: " << first << ", last time: " << last << "\n";
    }
    else
    {
        std::cout << "No '12' was entered.\n";
    }
}

当标准输入处于EOF状态时(例如,当您在终端上按Ctrl-D或从文件中读取时)程序结束。