黑马程序员技术交流社区

标题: 从键盘输入一大堆字符串,统计A、B、C、D的出现次数,最... [打印本页]

作者: linexs    时间: 2015-11-17 12:50
标题: 从键盘输入一大堆字符串,统计A、B、C、D的出现次数,最...
/*
5、 从键盘输入一大堆字符串,统计A、B、C、D的出现次数,最后出现次数由高到低输出字母和出现次数。(C语言)

1.定义数组并获得字符串
2.遍历数组,同时计算ABCD出现次数
3.冒泡排序,同时排序次数和对应的字母
4.遍历输出排列后的字母

*/

#include <stdio.h>
#define L 1000


int main(int argc, const char * argv[])
{
    char inputChar[L];
   
    printf("请从键盘输入字符串,回车结束:(友情提醒:输入\\0会影响统计结果!)\n");
    gets(inputChar);//获得输入字符串
   
    int a= 0,b= 0,c= 0,d= 0;//计数器
   
    for (int i= 0; i< L; i++) {//遍历数组
        
        switch (inputChar[i]) {//计数ABCDC出现次数
            case 'A':
                a++;
                break;
            case 'B':
                b++;
                break;
            case 'C':
                c++;
                break;
            case 'D':
                d++;
                break;
            default:
                break;
        }
    }
   
    //冒泡排序 同时排序次数和对应的字母
    int  arr[4]= {a,b,c,d};
    char trr[4] = {'A','B','C','D'};
    int len = 4;
    for (int i =0; i< len-1; i++) {
        for (int j= 0; j< len-1-i; j++) {
            if (arr[j]< arr[j+1]) {
               
                int tmp1 = 0;
                tmp1 = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = tmp1;
               
                char tmp2 = '0';
                tmp2 = trr[j];
                trr[j] = trr[j+1];
                trr[j+1] = tmp2;
            }
            
        }
    }
   
    //遍历输出排列后的字母
   
    for (int i= 0; i< len; i++) {
        printf("字母%c出现现%d次\n",trr[i],arr[i]);
    }
   
    printf("The end\n");
    return 0;
}
作者: poxiao    时间: 2015-11-17 21:20
学习一下

作者: 15532158132    时间: 2015-11-18 21:48
加油加油
作者: Tactful丶boy    时间: 2015-11-18 22:20
今天刚学到冒泡排序,自己自习了字符串,很受用,结合了很多的知识,虽然说现在有很多不懂,你给的代码很受用,好好研究下,顶起,加油
作者: linexs    时间: 2015-11-18 22:39
Tactful丶boy 发表于 2015-11-18 22:20
今天刚学到冒泡排序,自己自习了字符串,很受用,结合了很多的知识,虽然说现在有很多不懂,你给的代码很受 ...

可以一起探讨研究哦
作者: linexs    时间: 2015-11-18 22:42
15532158132 发表于 2015-11-18 21:48
加油加油

谢谢,一起加油,一起到成为名副其实的黑马程序员
作者: 大雕会飞    时间: 2015-11-18 22:49
学习了,原来也没有看过用字符排序的
作者: linexs    时间: 2015-11-19 12:28
大雕会飞 发表于 2015-11-18 22:49
学习了,原来也没有看过用字符排序的

比字符的话,也可以转成ascii码来比,或者strcmp () 




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