鱼C论坛

 找回密码
 立即注册
查看: 900|回复: 2

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

[复制链接]
发表于 2023-11-15 21:27:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

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

  6. 输入样例:
  7. helloworld

  8. 输出样例:
  9. d:1
  10. e:1
  11. h:1
  12. l:3
  13. o:2
  14. r:1
  15. w:1
复制代码



my program:
  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5.         char matrix[1024];
  6.         gets(matrix);
  7.         int len = strlen(matrix);
  8.         int num1,num2,count = 0;
  9.        
  10.         for(num1 = 97;num1 < 122;num1++)
  11.         {
  12.                 count = 0;
  13.                 for(num2 = 0;num2 < len;num2++)
  14.                 {
  15.                         if(matrix[num2]==num1)
  16.             {
  17.                 count++;
  18.                     }
  19.         }
  20.                 if(count > 0)
  21.         {
  22.             printf("%c:%d\n",num1,count);
  23.         }
  24.     }
  25.     return 0;
  26. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-15 21:27:47 | 显示全部楼层
  1. #include <stdio.h>
  2. #include <string.h>

  3. int main() {
  4.     char matrix[100001];
  5.     gets(matrix);
  6.     int len = strlen(matrix);
  7.     int count[26] = {0};

  8.     for (int i = 0; i < len; i++) {
  9.         count[matrix[ i] - 'a']++;
  10.     }

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

  16.     return 0;
  17. }
复制代码


这个程序使用了一个长度为26的整型数组 count 来统计每个字符出现的次数。首先,对输入的字符串进行遍历,通过 matrix[ i] - 'a' 的方式将小写字母映射到0-25的范围内,然后对应位置的计数器加一。最后再遍历整型数组,输出出现次数大于0的字符及其出现的次数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-15 22:18:52 | 显示全部楼层
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         char matrix[1024]                                                        ;
  5.         int d[26] = {0} , i                                                      ;
  6.         gets(matrix)                                                             ;
  7.         for(i = 0 ; matrix[i] ; i ++) d[matrix[i] - 'a'] ++                      ;
  8.         for(i = 0 ; i < 26 ; i ++) if(d[i]) printf("%c : %d\n" , 'a' + i , d[i]) ;
  9. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-28 08:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表