A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© EchoWill 中级黑马   /  2014-4-28 01:36  /  1070 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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计数仍有错误。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

正序浏览
for循环的时候字母交换就得记录字母出现次数。得在for循环里添加计数器。

评分

参与人数 1黑马币 +5 收起 理由
王丹 + 5 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马