黑马程序员技术交流社区

标题: 输入字符串,并对字符计数、排序 [打印本页]

作者: EchoWill    时间: 2014-4-28 01:36
标题: 输入字符串,并对字符计数、排序
本帖最后由 EchoWill 于 2014-4-28 19:17 编辑
  1. #include <stdio.h>
  2. #include <string.h>

  3. struct appear   //定义结构体,存储字母和出现次数
  4. {
  5.     char c;
  6.     int count;
  7. };

  8. //声明函数
  9. void letter_print(struct appear ptr[]);
  10. void arrange(struct appear ptr[]);

  11. int main(int argc, const char * argv[])
  12. {
  13.     // 定义结构体变量,并初始化
  14.     struct appear countA,countB,countC,countD,arr[4];
  15.     countA.c = 'A';
  16.     countA.count = 0;
  17.     countB.c = 'B';
  18.     countB.count = 0;
  19.     countC.c = 'C';
  20.     countC.count = 0;
  21.     countD.c = 'D';
  22.     countD.count = 0;
  23.    
  24.     printf("请输入字符串(包括A、B、C、D):\n");
  25.     char str[1024];
  26.     scanf("%s",str);
  27.     // 遍历每个字符
  28.     for (int n = 0; str[n]!='\0';++n )
  29.     {
  30.         // 识别字符,并计数
  31.         switch (str[n])
  32.         {
  33.             case 'A':
  34.                 ++countA.count;
  35.                 break;
  36.             case 'B':
  37.                 ++countB.count;
  38.                 break;
  39.             case 'C':
  40.                 ++countC.count;
  41.                 break;
  42.             case 'D':
  43.                 ++countD.count;
  44.                 break;
  45.               
  46.         }
  47.         arr[0] = countA;
  48.         arr[1] = countB;
  49.         arr[2] = countC;
  50.         arr[3] = countD;
  51.     }
复制代码

参考了大家讨论的代码,ABCD计数仍有错误。
作者: 王齐    时间: 2014-4-28 02:03
for循环的时候字母交换就得记录字母出现次数。得在for循环里添加计数器。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2