1740 - 统计每个数出现的次数c++
时间: 2023-12-03 21:15:28 浏览: 665
题目描述:
给定一个数组,统计每个数出现的次数。
输入:
第一行为数组长度n(1<=n<=1000),第二行为数组元素,元素之间用空格隔开。
输出:
每个数出现的次数,按照从小到大的顺序输出,格式为:数值:出现次数。
样例输入:
10
5 2 3 5 1 3 5 1 3 5
样例输出:
1:2
2:1
3:3
5:4
解题思路:
可以用哈希表来统计每个数出现的次数,键为数值,值为出现次数。遍历数组,依次将每个数存入哈希表中,如果已经存在,则将出现次数加1,否则将该数值存入哈希表并将出现次数初始化为1。最后将哈希表按键从小到大排序,输出每个数值和对应的出现次数。
Python代码:
n = int(input())
nums = list(map(int, input().split()))
count = {}
for num in nums:
if num in count:
count[num] += 1
else:
count[num] = 1
for num in sorted(count.keys()):
print(num, ":", count[num])
相关问题
c++ vetctor 统计每个值出现次数
C语言中,可以使用向量(vector)来统计每个值出现的次数。下面是一个简单实现的示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int value;
int count;
} ValueCount;
int main() {
int num;
printf("请输入要统计的数字个数:");
scanf("%d", &num);
int *numbers = (int*)malloc(num * sizeof(int));
for (int i = 0; i < num; i++) {
printf("请输入第%d个数字:", i + 1);
scanf("%d", &numbers[i]);
}
ValueCount *counts = (ValueCount*)malloc(num * sizeof(ValueCount));
int countSize = 0;
for (int i = 0; i < num; i++) {
int value = numbers[i];
int found = 0;
for (int j = 0; j < countSize; j++) {
if (counts[j].value == value) {
counts[j].count++;
found = 1;
break;
}
}
if (!found) {
counts[countSize].value = value;
counts[countSize].count = 1;
countSize++;
}
}
printf("每个值出现的次数如下:\n");
for (int i = 0; i < countSize; i++) {
printf("值:%d,出现次数:%d\n", counts[i].value, counts[i].count);
}
free(numbers);
free(counts);
return 0;
}
```
以上代码通过向量`ValueCount`的方式,统计用户输入的数字数组中,每个值出现的次数,并输出结果。程序首先要求用户输入要统计的数字个数,然后逐个输入这些数字,然后遍历数字数组,对每个值进行统计,通过向量`ValueCount`来记录每个值出现的次数。最后打印出每个值和对应的出现次数。
输入英文单词,统计每个单词的出现次数c++
以下是一个简单的 C++ 代码,可以输入一段英文文本并统计每个单词的出现次数:
```cpp
#include <iostream>
#include <string>
#include <map>
#include <sstream>
using namespace std;
int main() {
string text;
getline(cin, text); // 输入一行文本
// 将文本中的所有非字母字符替换为空格
for (char& c : text) {
if (!isalpha(c)) {
c = ' ';
}
}
// 统计每个单词的出现次数
map<string, int> word_count;
stringstream ss(text);
string word;
while (ss >> word) {
++word_count[word];
}
// 输出结果
for (const auto& p : word_count) {
cout << p.first << ": " << p.second << endl;
}
return 0;
}
```
这个程序首先读入一行文本,然后将其中所有非字母字符替换为空格,以便将文本划分为单词。然后使用一个 `map<string, int>` 来统计每个单词出现的次数,最后输出结果。
阅读全文