1 条题解

  • 1
    @ 2024-11-30 11:49:22
    #include <stdio.h>
    #include <math.h>
    #include <string.h>
    #include <stdlib.h>
    // 定义一个函数,用于计算字符串中的字符出现次数
    void add(char s[],int a[]){
    for(int i=0;i<strlen(s);i++){
        if(s[i]-'A'>=0 && s[i]-'A'<26)//去除标点符号与空格
        a[s[i]-'A']++;}}
        
    // 定义一个函数,用于找到数组中的最大值    
    int findmax(int a[]){
        int max=0;
        for(int i=0;i<26;i++){
            if(a[i]>max) max=a[i];
        }
        return max;
    }
    
    int main(){
        int a[26]={0};
        char s1[100],s2[100],s3[100],s4[100];
      //读取四行字符,也可以用for循环
        scanf("%[^\n]",s1);
      //跳过换行符
        getchar();
        add(s1,a);
        scanf("%[^\n]",s2);
        getchar();
        add(s2,a);
        scanf("%[^\n]",s3);
        getchar();
        add(s3,a);
        scanf("%[^\n]",s4);
        add(s4,a);
      
     // 找到字符统计数组 a 中的最大值   
    int max=findmax(a);
      
    //从大到小输出,
    for(int i=max;i>0;i--){
        for(int j=0;j<26;j++){
          //如果该字符出现的数目大于等于I,则输出 '*',否则输出 ' '
            if(a[j]>=i) putchar('*');
            else putchar(' ');
           // 在每个字符后面输出一个空格,除了最后一个字符
            if(j<25) putchar(' ');
        }
       // 每行输出结束后,输出一个换行符
        printf("\n");
    }
      //输出横轴
    for(int i=0;i<26;i++){
        printf("%c",'A'+i);
       // 在每个字符后面输出一个空格,除了最后一个字符
        if(i<25) putchar(' ');
    }}
    
    • 1

    信息

    ID
    5656
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    112
    已通过
    67
    上传者