给出一系列抗疫英雄的姓名和来自的省份,现在请你帮忙统计来自河南的抗疫英雄有多少位。 注:建议大家使用函数进行模块化编程,例如: bool judge(char name[], char province[]) //判断一个人员是否来自河南省 { } int main() { } 输入格式: 第一行一个整数N(1<=N<=100000),表示名单中共有多少人员。 以下N行中,每一行两个字符串用空格隔开,name province(name和province中均不包含空格,每个字符串长度都不超过20),分别表示姓名和省份的英文简称(这里我们明确河南省的代码固定为“HA”,其他省份代码我们不做要求,只要不是“HA”这个代码,我们就认为是其他省份); 输出格式: 一个数,表示来自河南省的人员有多少位。
时间: 2023-06-27 16:06:04 浏览: 50
```python
#include <iostream>
#include <cstring>
using namespace std;
const int N = 1e5 + 10;
bool judge(char province[]) //判断一个人员是否来自河南省
{
if (strcmp(province, "HA") == 0) return true;
return false;
}
int main()
{
int n;
cin >> n;
int cnt = 0; //统计来自河南省的人员数
char name[21], province[3];
for (int i = 0; i < n; i++)
{
cin >> name >> province;
if (judge(province)) cnt++;
}
cout << cnt << endl;
return 0;
}
```
相关问题
编写程序打印输出大学数量最多的省份名,并统计这些列出的省份共有多少所大学
A:
我可以给出Python语言实现的代码:
```python
university_dict = {'湖南': 36, '江苏': 39, '山东': 43, '河南': 44, '广东': 54, '河北': 59, '四川': 61, '江西': 63, '陕西': 66, '湖北': 73, '安徽': 77, '辽宁': 78, '山西': 80, '北京': 82, '广西': 82, '重庆': 83, '福建': 89, '天津': 92, '黑龙江': 98, '吉林': 99, '上海': 105, '浙江': 118, '云南': 126, '贵州': 141, '新疆': 144, '青海': 145, '海南': 148, '甘肃': 149, '西藏': 47, '宁夏': 19, '台湾': 0, '香港': 0, '澳门': 0} #按省份存储各自大学数量
max_university_num = max(university_dict.values()) #获取大学数量最多的省份的数量
max_university_province = [] #储存大学数量最多的省份名
for province, university_num in university_dict.items():
if university_num == max_university_num:
max_university_province.append(province)
print("大学数量最多的省份为:", max_university_province) #输出大学数量最多的省份名
total_university_num = sum([v for k, v in university_dict.items() if k in max_university_province])
print("这些列出的省份共有大学数量为:", total_university_num) #输出大学数量最多的省份中大学的总数量
```
该程序首先将各省的大学数量存储在一个字典中,然后通过Python内置函数`max()`找到大学数量最多的省份。接着,程序寻找大学数量等于最多省份的大学数量的所有省份,并将它们存储在一个列表中。最后,程序通过内置函数`sum()`统计大学数量最多省份中大学的总数,并输出结果。
注意:这里所列出的大学数量只是用来演示的示例数据,并非真实数据,与实际情况可能存在误差。
flink根据以上数据,统计每个省份有多少家外卖店,并按降序排序
假设数据已经被读入Flink的DataStream中,并且每个元素是一个JSON字符串,包含了外卖店所在的省份信息。可以通过Flink的DataStream API来进行统计和排序。
以下是可能的代码实现:
```java
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.api.java.functions.KeySelector;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.aggregation.AggregationFunction;
import org.apache.flink.streaming.api.functions.aggregation.SumFunction;
import org.apache.flink.streaming.api.windowing.time.Time;
import org.json.JSONObject;
public class ProvinceCounter {
public static void main(String[] args) throws Exception {
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
// 读入数据流,假设每个元素是一个JSON字符串
DataStream<String> input = ...;
// 将每个JSON字符串解析为省份信息
DataStream<String> provinces = input.map(new MapFunction<String, String>() {
@Override
public String map(String value) throws Exception {
JSONObject json = new JSONObject(value);
return json.getString("province");
}
});
// 按省份分组,统计每个省份的外卖店数量
DataStream<ProvinceCount> counts = provinces
.keyBy(new KeySelector<String, String>() {
@Override
public String getKey(String value) throws Exception {
return value;
}
})
.timeWindow(Time.minutes(10)) // 滚动窗口,每10分钟统计一次
.aggregate(new SumFunction<String>() {
@Override
public String add(String value1, String value2) throws Exception {
return value1; // 外卖店数量不需要累加,只需要计数
}
}, new AggregationFunction<String, ProvinceCount>() {
@Override
public ProvinceCount createAccumulator() {
return new ProvinceCount("", 0);
}
@Override
public ProvinceCount add(String value, ProvinceCount accumulator) {
accumulator.province = value;
accumulator.count += 1;
return accumulator;
}
@Override
public ProvinceCount getResult(ProvinceCount accumulator) {
return accumulator;
}
@Override
public ProvinceCount merge(ProvinceCount a, ProvinceCount b) {
a.count += b.count;
return a;
}
});
// 按降序排序并输出结果
counts
.keyBy(new KeySelector<ProvinceCount, Integer>() {
@Override
public Integer getKey(ProvinceCount value) throws Exception {
return value.count;
}
})
.sortByDescending(new KeySelector<ProvinceCount, Integer>() {
@Override
public Integer getKey(ProvinceCount value) throws Exception {
return value.count;
}
})
.print();
env.execute("Province Counter");
}
// 用于表示每个省份的统计信息
public static class ProvinceCount {
public String province;
public int count;
public ProvinceCount(String province, int count) {
this.province = province;
this.count = count;
}
@Override
public String toString() {
return "ProvinceCount{" +
"province='" + province + '\'' +
", count=" + count +
'}';
}
}
}
```
本代码假设每个元素都是一个JSON字符串,其中包含了外卖店所在的省份信息。首先将每个JSON字符串解析为省份信息,然后按省份分组,并在滚动窗口内计数,统计每个省份的外卖店数量。最后按降序排序并输出结果。注意,Flink的DataStream API是流式处理的,因此需要使用窗口等操作将数据流转换为有限的数据集。