不枉风来水顺 发表于 2023-11-15 21:27:39

输入一个字符串,请统计每个字符出现的次数。

the problem:
输入一个字符串,请统计每个字符出现的次数。

输入格式:
只有一行,为一个长度不超过100000且只包含小写字母的字符串。

输出格式:
若干行,如果某个字符的出现次数大于0,则输出该字母及其出现的次数,具体格式看输出样例。输出顺序为字典序。

输入样例:
helloworld

输出样例:
d:1
e:1
h:1
l:3
o:2
r:1
w:1


my program:
#include<stdio.h>
#include<string.h>
int main()
{
        char matrix;
        gets(matrix);
        int len = strlen(matrix);
        int num1,num2,count = 0;
       
        for(num1 = 97;num1 < 122;num1++)
        {
                count = 0;
                for(num2 = 0;num2 < len;num2++)
                {
                        if(matrix==num1)
            {
                count++;
                  }
      }
                if(count > 0)
      {
            printf("%c:%d\n",num1,count);
      }
    }
    return 0;
}

isdkz 发表于 2023-11-15 21:27:47

#include <stdio.h>
#include <string.h>

int main() {
    char matrix;
    gets(matrix);
    int len = strlen(matrix);
    int count = {0};

    for (int i = 0; i < len; i++) {
      count - 'a']++;
    }

    for (int i = 0; i < 26; i++) {
      if (count[ i] > 0) {
            printf("%c:%d\n", i + 'a', count[ i]);
      }
    }

    return 0;
}


这个程序使用了一个长度为26的整型数组 count 来统计每个字符出现的次数。首先,对输入的字符串进行遍历,通过 matrix[ i] - 'a' 的方式将小写字母映射到0-25的范围内,然后对应位置的计数器加一。最后再遍历整型数组,输出出现次数大于0的字符及其出现的次数。

jackz007 发表于 2023-11-15 22:18:52

#include <stdio.h>

int main(void)
{
      char matrix                                                      ;
      int d = {0} , i                                                      ;
      gets(matrix)                                                             ;
      for(i = 0 ; matrix ; i ++) d - 'a'] ++                      ;
      for(i = 0 ; i < 26 ; i ++) if(d) printf("%c : %d\n" , 'a' + i , d) ;
}
页: [1]
查看完整版本: 输入一个字符串,请统计每个字符出现的次数。