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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. char str[1024];
  2.         gets(str);
  3.         
  4.         int i = 0;
  5.         int countA = 0;
  6.         int countB = 0;
  7.         int countC = 0;
  8.         int countD = 0;
  9.         //计算ABCD出现的个数
  10.         while (str[i] != '\0') {
  11.             
  12.             if(str[i] == 'A')
  13.             {
  14.                 countA++;
  15.             }
  16.             else if(str[i] == 'B')
  17.             {
  18.                 countB++;
  19.             }
  20.             else if(str[i] == 'C')
  21.             {
  22.                 countC++;
  23.             }
  24.             else if(str[i] == 'D')
  25.             {
  26.                 countD++;
  27.             }
  28.             
  29.             i++;
  30.         }
  31.         
  32.         printf("%i, %i, %i, %i\n", countA, countB, countC, countD);
  33.         
  34.         //分别将字母和次数放到数组中,他们的关系是对应的。并且再排序的时候他们的位置都是要变得。
  35.         int count[4] = {countA, countB, countC, countD};
  36.         char cc[4] = {'A', 'B', 'C', 'D'};
  37.         for(int i = 0; i<3; i++)
  38.         {
  39.             if(count[i] < count[i+1])
  40.             {
  41.                 int temp = count[i];
  42.                 count[i] = count[i + 1];
  43.                 count[i + 1] = temp;
  44.                
  45.                 char tempC = cc[i];
  46.                 cc[i] = cc[i + 1];
  47.                 cc[i + 1] = tempC;
  48.             }
  49.         }
  50.         
  51.         for(int i = 0; i<4; i++)
  52.         {
  53.             printf("%c : %i\n", cc[i], count[i]);
  54.         }
  55.   
复制代码


5 个回复

正序浏览
arui12580 来自手机 中级黑马 2015-1-18 23:23:48
地板
为毛不用结构体
回复 使用道具 举报
missyoyo 发表于 2015-1-17 22:53
IOS?进错了,我按照JAVA的思路来解了,楼主可以不看我的解答

感觉iOS中肯定也是有类似的思路
回复 使用道具 举报
IOS?进错了,我按照JAVA的思路来解了,楼主可以不看我的解答
回复 使用道具 举报
我也是觉得我这样的方法麻烦了,但是不太明白那个TreeMap集合,一会上网查查。。
回复 使用道具 举报
不行的,像这样做为何不用switch,switch效率高,如果是统计A到Z呢?不可能定义26个变量吧?
正确的做法应该是定义一个TreeMap集合,键是A-Z,值是出现的次数,如果集合中没有出现过键,则map.put(字母,1).如果出现过则值++;再put
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马