Day 0x5 UVa10062 Tell me the frequencies!

题意

  • 对每一列输入,输出各字元的 ASCII & 次数
  • 需要注意的点有:
    1. 重复输入,止於 EOF
    2. 每一行输入对应一输出,长度 ≦ 1000
    3. 输入的每个字元:32 ≦ ASCII ≦ 127
    4. 每行输出包含 ASCII & 次数
      • 按照次数由小到大
      • 同样次数按照 ASCII 由大到小
    5. 每笔输出间含一空白行

解法

  • while 回圈重复输入,用 gets() 来读入空白和控制 EOF 结束,并存到 str 字元阵列里
    char str[1001] = {0};
    
    while(gets(str)){
        ...
    }
    
  • bool 型态 (记得 include<stdbool.h>) 的 flag 变数当作开关,控制每笔输入间的空白行
    • 第一笔输出後若有第二笔输入进来,才会输出空白行
    #include<stdbool.h>
    
    bool flag = false;
    
    while(gets(str)){
    
        if(flag){
            printf("\n");
        }
    
        flag = true;
        ...
    }
    
  • 再开一个整数阵列,index 代表 ASCII,value 存入次数;用 for 回圈分别处理输入的每个字元
    int count[128] = {0};
    
    for(i = 0; i < strlen(str); i++){
        count[str[i]]++;
    }
    
  • 按照题目要求的顺序输出
    • 外层 for 回圈跑次数
    • 内层 for 回圈跑 ASCII
    • if 判断,如果该次数有对应的 ASCII 就输出
    for(i = 1; i <= strlen(str); i++){  // the number of each ASCII
        for(j = 127; j >= 32; j--){      // counter of ASCII
            if(count[j] == i){
                printf("%d %d\n", j, i);
            }
        }
    }    
    
  • C Code
    #include<stdio.h>
    #include<stdbool.h>
    
    int main(){
    
        char str[1001] = {0};
        int i, j;
        bool flag = false;
    
        while(gets(str)){
    
            if(flag){
                printf("\n");
            }
    
            int count[128] = {0};
            flag = true;
    
            for(i = 0; i < strlen(str); i++){
                count[str[i]]++;
            }
    
            for(i = 1; i <= strlen(str); i++){  // the number of each ASCII
                for(j = 127; j >= 32; j--){      // counter of ASCII
                    if(count[j] == i){
                        printf("%d %d\n", j, i);
                    }
                }
            }    
        }
    
        return 0;
    }
    

<<:  [Day-6] R语言 - 怎麽选 分群群数 & 距离? ( Clustering Distance & Index )

>>:  Day06 - Docker 简介,Container是什麽 ?

[前端暴龙机,Vue2.x 进化 Vue3 ] Day4. Vue的生命周期

开心,终於正式进入 Vue 的介绍了~ 在了解 Vue 的写法前,有个重要的观念必需去了解,那就是 ...

如何取出物件中重复/不重复的值

在上一篇中写了关於阵列的做法 假如今天我们将阵列改成物件,该怎麽去实现它呢? 先给一个全域值: co...

Day-09 说明public,protected 与 private 的差别?

在 Ruby 里 public,protected 与 private 都是存取限制的方法。 他们的...

Day 24 Flask-Mail

这个插件就如同名称一样,是专门寄信使用的(恩对,介绍就这样而已)。 准备 在开始使用之前要先做好前置...

Day23:传入 JSON 文件

前言 上一篇文章我 hard code 了一些数据进去我的专案, 现在要来把这些数据放进 JSON ...