输入100个姓名(可能有相同的姓名),输出一共出现了多少种姓名。 输入格式: 输入100行字符串。 输出格式: 输出一个整数用c语言简单的方法来写
时间: 2024-12-20 13:24:51 浏览: 45
为了计算100个姓名中有多少种不同的姓名,你可以使用C语言中的哈希表(如`unordered_set`)或者数组+计数法。这里我将提供一种基于数组和计数的方法,因为这种方法更基础,适合教学。
首先,创建一个大小为100的布尔型数组`nameCount[100]`,初始化所有元素为0。然后遍历输入的100个姓名,对于每个姓名,检查`nameCount`中对应的索引。如果该位置的值为0,说明这是首次遇到这个姓名,增加计数;如果已经为1,表示已知这个姓名,不需要改变计数。
```c
#include <stdio.h>
#include <stdbool.h>
#define MAX_NAME 100
int main() {
char name[MAX_NAME];
int count = 0;
bool nameCount[MAX_NAME] = {false}; // 初始化所有名字计数为0
// 遍历100个姓名
for (int i = 0; i < 100; i++) {
scanf("%s", name); // 输入一行姓名
if (!strcmp(name, "")) break; // 检查是否输入结束
if (!nameCount[name - 'A']) { // 如果是第一次遇到,计数加一
count++;
nameCount[name - 'A'] = true;
}
}
printf("共出现了%d种不同的姓名。\n", count);
return 0;
}
```
在这个程序中,我们假设姓名是由小写字母组成的,并用'A'到'z'的ASCII码作为索引。如果实际的姓名可能包含大写字母或其他字符,你需要相应地修改比较和索引操作。
阅读全文
相关推荐













