定义一个字符数组,数组内容为学生姓名(英文名),分别统计不同字母开头的小朋友的个数。例如姓名以l开头的小朋友3个,姓名以p开头的小朋友4个。
时间: 2023-04-25 11:01:25 浏览: 104
可以定义一个字符数组,存储学生姓名(英文名),然后使用循环遍历每个姓名,统计不同字母开头的小朋友的个数。
具体实现可以使用一个计数器数组,数组下标对应字母的ASCII码值,数组元素表示以该字母开头的小朋友个数。遍历每个姓名时,取出第一个字母,将对应计数器数组的元素加1即可。
例如,如果有以下学生姓名:
{"Alice", "Bob", "Charlie", "David", "Eva", "Frank", "Grace", "Henry", "Ivy", "Jack"}
则可以定义一个长度为26的计数器数组count,遍历每个姓名,统计不同字母开头的小朋友的个数:
int[] count = new int[26];
for (String name : names) {
char firstLetter = name.charAt();
count[firstLetter - 'A']++;
}
最终,count数组中的元素就是以不同字母开头的小朋友的个数。例如,count[11]表示以字母L开头的小朋友的个数,count[15]表示以字母P开头的小朋友的个数。
相关问题
用c语言输入一行字符统计其中每个英文字母的个数存放到一维数组中
以下是一个示例程序,可以实现输入一行字符统计其中每个英文字母的个数,并将结果存放到一维数组中:
```c
#include <stdio.h>
#include <ctype.h>
#define MAX_LENGTH 1000 // 输入字符串的最大长度
#define NUM_LETTERS 26 // 英文字母的数量
int main() {
char str[MAX_LENGTH];
int counts[NUM_LETTERS] = {0}; // 初始值全部为0
printf("请输入一行字符:\n");
fgets(str, MAX_LENGTH, stdin); // 读取一行字符
// 统计每个英文字母的个数
for (int i = 0; str[i] != '\0'; i++) {
if (isalpha(str[i])) { // 判断是否为英文字母
int index = tolower(str[i]) - 'a'; // 转换为小写字母后计算下标
counts[index]++;
}
}
// 输出结果
for (int i = 0; i < NUM_LETTERS; i++) {
if (counts[i] > 0) {
printf("%c: %d\n", 'a' + i, counts[i]);
}
}
return 0;
}
```
程序中使用了几个关键函数:
- `fgets()`:读取一行字符,包括换行符。
- `isalpha()`:判断一个字符是否为英文字母。
- `tolower()`:将大写字母转换为小写字母。
- 数组下标计算:将小写字母转换为对应的数字下标,例如 `a` 对应下标 `0`,`b` 对应下标 `1`,以此类推。
需要注意的是,程序中只统计了小写字母的个数,如果需要统计大写字母的个数,可以在计算下标时先使用 `tolower()` 函数转换为小写字母。
使用JAVA定义一个字符型数组依次输出26个英文字母
好的,这个问题我可以回答。以下是使用JAVA定义一个字符型数组依次输出26个英文字母的代码:
```
char[] letters = new char[26];
for (int i = 0; i < 26; i++) {
letters[i] = (char) ('a' + i);
System.out.print(letters[i] + " ");
}
```
这段代码会定义一个长度为26的字符型数组,然后使用循环依次给数组赋值为a到z的字母,并输出到控制台上。