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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sheji_56 中级黑马   /  2015-3-16 18:15  /  381 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

从键盘输入一大堆字符串,统计A、B、C、D的出现次数,最后出现次数由高到低输出字母和出现次数。(C语言)                        这个题是什么意思 ,哪位大侠 看懂了

2 个回复

正序浏览
这题用结构体做比较方便  然后弄个算法排序  我还是写出来吧
  1. /*
  2. 6.从键盘输入一大堆字符串,统计A、B、C、D的出现次数,最后出现次数由高到低输出字母和出现次数。

  3. */
  4. #include<stdio.h>
  5. #include<string.h>
  6. //
  7. typedef struct{
  8.     int count; // 对应字母的个数
  9.     char word; // 字母
  10.    
  11. } countWithWord;

  12. int main()
  13. {
  14.     // 选择排序算法的声明
  15.     void selectSort(countWithWord cww[],int n);
  16.     // 定义结构体数组并初始化
  17.     countWithWord cww[4] ={{0,'A'},{0,'B'},{0,'C'},{0,'D'}};
  18.    
  19.     int i; // 循环变量
  20.     char *str; // 定义字符指针,用来指向所输入的字符串
  21.    
  22.     gets(str); // 输入字符串
  23.     // 分别统计字母的个数
  24.     while(*str != '\0')
  25.     {
  26.        if(*str == 'A')
  27.        {
  28.            cww[0].count++;
  29.        }
  30.         else if(*str == 'B')
  31.         {
  32.             cww[1].count++;
  33.         }
  34.         else if(*str == 'C')
  35.         {
  36.             cww[2].count++;
  37.         }
  38.         else if(*str == 'D')
  39.         {
  40.             cww[3].count++;
  41.         }
  42.         
  43.         str++;
  44.     }
  45.     // 排序
  46.     selectSort(cww,4);
  47.     // 输出排序后的结果
  48.     for(i = 0;i < 4; i++)
  49.     {
  50.         printf("%c出现的次数------%d\n",cww[i].word,cww[i].count);
  51.     }
  52.     return 0;
  53. }

  54. void selectSort(countWithWord cww[],int n)
  55. {
  56.     int i,j,k;
  57.     countWithWord temp;
  58.     for(i = 0; i < n-1; i++)
  59.     {
  60.         k = i;
  61.         for(j = i + 1; j < n; j++)
  62.         {
  63.             if(cww[j].count > cww[k].count)
  64.             {
  65.                 k = j;
  66.             }
  67.         }
  68.         if(k != i)
  69.         {
  70.             temp = cww[k];
  71.             cww[k] = cww[i];
  72.             cww[i] = temp;
  73.         }
  74.     }
  75. }
复制代码
回复 使用道具 举报
意思是统计输入的字符个数,比如A5 B4 C3 D2. 可以采用循环遍历实现
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马