2 条题解

  • 0
    @ 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
      @ 2025-4-11 19:37:03
      #讀取輸入, 建立字典
      dict_char = {}
      for i in range(4):
          line_char = input()
          for char in line_char:
              if not char.isupper():
                  continue
              if char in dict_char:
                  dict_char[char] += 1
              else:
                  dict_char[char] = 1
      
      #找出最大次數
      max_char = max(dict_char.values())
      
      #輸出直方圖
      for i in range(max_char, 0, -1):
          for d in range(ord("A"), ord("Z")+1):
              char = chr(d)
              if char in dict_char and dict_char[char] >= i:
                  print("*", end = " ")
              else:
                  print(" ", end = " ")
          print()
      
      #輸出字母
      for i in range(26):
          print(chr(ord("A")+i), end = " ")
      
      • 1

      信息

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