Chasing_0533 2023-12-04 09:44 采纳率: 100%
浏览 274
已结题

统计出现过的大写字母

输入一串字符,统计其中大写字母A-Z各出现多少次,输出出现过的字母(每5个字母占一行)及其出现次数。

输入格式:
字符串

输出格式:
输出出现过的字母(每5个字母占一行)及其出现次数。

例如:A:5次 B:3次 F2次

输入样例1:
12AEAEwsDD45F222GG2RR3TT
输出样例1:
A:2次 D:2次 E:2次 F:1次 G:2次
R:2次 T:2次

输入样例2:
1234asdswe123
输出样例2:
26个大写字母都没出现过

  • 写回答

2条回答 默认 最新

  • 一个风轻云淡 优质创作者: 后端开发技术领域 2023-12-04 10:07
    关注
    
    #include <stdio.h>
    #include <string.h>
    #include <ctype.h>
    
    int main() {
        char input[1000];
        printf("请输入一串字符:");
        fgets(input, sizeof(input), stdin);
        int count[26] = {0};  // 用于统计26个大写字母出现的次数
    
        for (int i = 0; i < strlen(input); i++) {
            if (isupper(input[i])) {  // 判断是否为大写字母
                count[input[i] - 'A']++;  // 统计大写字母出现次数
            }
        }
    
        int printed = 0;  // 记录已经输出的字母个数
        for (int i = 0; i < 26; i++) {
            if (count[i] > 0) {
                printf("%c:%d次 ", 'A' + i, count[i]);  // 输出字母及其出现次数
                printed++;
                if (printed % 5 == 0) {
                    printf("\n");  // 每输出5个字母换行
                }
            }
        }
        
        if (printed == 0) {
            printf("26个大写字母都没出现过\n");
        } else if (printed % 5 != 0) {
            printf("\n");
        }
    
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 已采纳回答 12月18日
  • 创建了问题 12月4日