【C++程序题】字符数量

#【程序题】字符数量#

题目描述请统计一篇英文文章里所有小写字母各出现了几次。输入描述:输入若干行,处理到文件结尾符。字符总数<=100000输出描述:输出若干行,按字符序输出每种小写字符的出现次数,没有出现的字符不用输出。

示例1

输入abc abc

defabab ccc

ccc ccc

输出

a:4

b:4

c:11

d:1

e:1

f:1


我的思路大致分三大步,第一步获取数据到数组,第二步对数据进行冒泡排序,第三步统计数据,(第二步是为了第三步更方便统计,比如aaaabbcccf,只要判断后一位是不是和前一位相等)

具体思路详见下面。

#include
#include
using namespace std;
int main()
{

    char a[100000];
    int i = 0;
    int j;
    int k;
    char c;
    
    //第一步提取数据到数组a[]
    while ((c = getchar()) != EOF)
    {
        if (c >='a'&&c<='z')//题目有说明是统计小写字符,这里要加个条件
        {
            a[i] = c;
                i++;
        }
    }
    //第二步,这里就是冒泡排序
    for (j = 0; j < i-1; j++)
    {
        for (k = 0; k < i-j-1; k++)
        {
            if (a[k] > a[k + 1])
            {
                int t;
                t = a[k + 1];
                a[k + 1] = a[k];
                a[k] = t;
            }
        }
    }
    //第三步统计字符
    int t = 1;
    for (j = 0; j < i+1; j++)      /*这里注意是小于i+1,如果是     {
        if (a[j] == a[j-1])            
        {
            t++;
        }
        else
        {
            if(j!=0)        //要去除j=0,a[0]的情况,否则,后面会打印出啊a[-1]
            {
                printf("%c:%d\n", a[j - 1], t);
                t = 1;         //到了新的字符,重置个数为1,再继续统计
            }
        }
    
    }
    return 0;
}
【C++程序题】字符数量_第1张图片【C++程序题】字符数量_第2张图片

【C++程序题】字符数量_第3张图片

欢迎有更好的方法推荐!我们一起交流

你可能感兴趣的:(c++,算法,开发语言)