c++程序实现:统计在输入每个值连续出现了多少次
时间: 2024-10-09 20:15:14 浏览: 12
在C++中,要实现统计输入数值连续出现的次数,你可以使用一个简单的数据结构,比如`std::map`或者`std::unordered_map`来存储每个数及其对应的计数。这里是一个基本的示例,我们将使用`std::map`:
```cpp
#include <iostream>
#include <map>
int countConsecutive(int n) {
std::map<int, int> counts; // 用于存储数值及计数
int prev = -1;
int consecutive_count = 0;
for (int current; std::cin >> current; ) { // 从用户输入读取数值
if (current == prev + 1) { // 如果当前数比前一个数大1
consecutive_count++;
} else { // 否则,开始新的序列计数
counts[current] = consecutive_count;
consecutive_count = 1;
}
prev = current; // 更新前一个数
}
counts[current] = consecutive_count; // 保存最后一个数的连续计数
return counts; // 返回所有数的连续计数结果
}
int main() {
std::map<int, int> result = countConsecutive(0); // 调用函数并打印结果
for (const auto &entry : result) {
std::cout << "Number " << entry.first << " appears consecutively " << entry.second << " times.\n";
}
return 0;
}
```
这个程序会持续接收用户的输入,并统计每个数连续出现的次数,直到用户停止输入。每次读取到的新数,如果与其前一个数相加等于1,则增加计数;否则,将之前的计数存入`counts`中,并重置计数。