输入一个字符串(其长度不超过81),分别统计其中26个英文字母出现的次数(不区分大、小写字母),并按字母出现次数从高到低排序,若次数相同,按字母顺序排列。字母输出格式举例,例如:A-3,表示字母A出现3次,C-0表示字母C没有出现。

输入:

第一行为输入,占一行,输入的字符串可能含有空格

输出:

第二行为输出,占一行。按照字母输出格式从高到低输出,各字母输出之间用一个空格字符分隔。

样例:

123abcAABXxwvUu+

A-3 B-2 U-2 X-2 C-1 V-1 W-1 D-0 E-0 F-0 G-0 H-0 I-0 J-0 K-0 L-0 M-0 N-0 O-0   P-0 Q-0 R-0 S-0 T-0 Y-0 Z-0

//插入排序法
#include<stdio.h>
#include<string.h>

int main()
{
char str[81] = "123abcAABXxwvUu+";
gets(str);
int letter_stat[26] = {0};
char letter[26] = { ' ' };
for (int i = 0; i < 26; i++)
{
letter[i] = i + 'A';
}
int i = 0;
while (str[i])
{
int k = 0;
if (str[i] >= 'A'&&str[i] <= 'Z')
{
k = str[i] - 'A';
letter_stat[k]++;
}
else if (str[i] >= 'a'&&str[i] <= 'z')
{
k = str[i] - 'a';
letter_stat[k]++;
}
i++;
}

for (int i = 0; i < 26; i++)
{
int k = letter_stat[i];
int temp = letter[i];
int j = i - 1;
while (j >= 0 && letter_stat[j] < k)
{
letter_stat[j + 1] = letter_stat[j];
letter[j + 1] = letter[j];
j--;
}
letter_stat[j + 1] = k;
letter[j + 1] = temp;
}
for (int i = 0; i < 25; i++)
{
printf("%c-%d ", letter[i],letter_stat[i]);
}
printf("%c-%d", letter[25], letter_stat[25]);
return 0;
}
//冒泡排序法
#include<stdio.h>
#include<string.h>

int main()
{
char str[81] = "123abcAABXxwvUu+";
gets(str);
int letter_stat[26] = {0};
char letter[26] = { ' ' };
for (int i = 0; i < 26; i++)
{
letter[i] = i + 'A';
}
int i = 0;
while (str[i])
{
int k = 0;
if (str[i] >= 'A'&&str[i] <= 'Z')
{
k = str[i] - 'A';
letter_stat[k]++;
}
else if (str[i] >= 'a'&&str[i] <= 'z')
{
k = str[i] - 'a';
letter_stat[k]++;
}
i++;
}
for (int i = 0; i < 25; i++)
for (int j = 0; j < 25 - i; j++)
{

if (letter_stat[j] < letter_stat[j + 1])
{
int temp = letter_stat[j + 1];
letter_stat[j + 1] = letter_stat[j];
letter_stat[j] = temp;

temp = letter[j + 1];
letter[j + 1] = letter[j];
letter[j] = temp;

}

}

for (int i = 0; i < 25; i++)
{
printf("%c-%d ", letter[i],letter_stat[i]);
}
printf("%c-%d", letter[25], letter_stat[25]);
return 0;
}
---------------------

C语言编程-9_4 字符统计的更多相关文章

  1. 3218: 字符串字符统计—C语言

    3218: 字符串字符统计—C语言 时间限制: 1 Sec  内存限制: 128 MB提交: 270  解决: 129[提交][状态][讨论版][命题人:smallgyy] 题目描述 编写一函数,由实 ...

  2. 第二章 C语言编程实践

    上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...

  3. linux 操作系统下c语言编程入门

    2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理  ...

  4. R语言编程艺术(4)R对数据、文件、字符串以及图形的处理

    本文对应<R语言编程艺术> 第8章:数学运算与模拟: 第10章:输入与输出: 第11章:字符串操作: 第12章:绘图 =================================== ...

  5. 有关c语言编程

    有关C语言编程 统计代码"行数" 对于统计代码"行数",行数不包括空白行和注释行.程序改进如下: while(fgets (mystring , 100 , f ...

  6. Linux C语言编程基本原理与实践

    Linux C语言编程基本原理与实践(2018-06-16 19:12:15) Linux C语言编程基本原理与实践 高效的学习带着目的性: 是什么 -> 干什么 -> 怎么用 重识C语言 ...

  7. C语言编程实现Linux命令——who

    C语言编程实现Linux命令--who 实践分析过程 who命令是查询当前登录的每个用户,它的输出包括用户名.终端类型.登录日期及远程主机,在Linux系统中输入who命令输出如下: 我们先man一下 ...

  8. 个人c语言编程风格总结

    总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的.首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的. 一件事情,做成和做好中间可能隔了 ...

  9. Linux下C语言编程实现spwd函数

    Linux下C语言编程实现spwd函数 介绍 spwd函数 功能:显示当前目录路径 实现:通过编译执行该代码,可在终端中输出当前路径 代码实现 代码链接 代码托管链接:spwd.c 所需结构体.函数. ...

随机推荐

  1. nyoj_676_小明的求助_201312042142-2

    小明的求助 时间限制:2000 ms  |           内存限制:65535 KB 难度:2   描述 小明对数学很有兴趣,今天老师出了道作业题,让他求整数N的后M位,他瞬间感觉老师在作弄他, ...

  2. N天学习一个linux命令之ssh-keygen

    用途 生成ssh加密算法需要使用到的秘钥以及管理和转换 用法 ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment] [- ...

  3. footer在最低显示

    footer在最低显示 http://stackoverflow.com/questions/585945/how-to-align-content-of-a-div-to-the-bottom

  4. 设置ckeditor的高度

    设置ckeditor的高度 CKEDITOR.replace('text', { filebrowserImageUploadUrl : 'upload_img.do', language : 'zh ...

  5. 怎样给你的Android 安装文件(APK)瘦身

    本文源地址:怎样给你的Android 安装文件(APK)瘦身 Android的apk文件越来越大了这已经是一个不争的事实. 在Android 还是最初版本号的时候,一个app的apk文件大小也还仅仅有 ...

  6. WebGIS开发技术杂谈

    WebGIS项目的开发主要是B/S架构.最流行的是clientjavascript,server端java. 另外还有flexclient. client主要完毕用户交互.向server端发送请求并传 ...

  7. Cocoa pods的安装和使用

    现在网上关于cocoapods的安装使用资料有很多,有些方法能用,有些是用不了的,别问为什么,因为我就是从坑里走出来的.在此自己整理了一些方法: 一般需要先升级Ruby环境: 第一步:安装rvm $  ...

  8. Spring发送邮件_javax.mail.AuthenticationFailedException异常已解决

    在Spring项目中须要增加监控功能.监控过程中发现异常时.须要邮件报警.最初选择用javamail发送,代码量比較大(相对于spring发送).终于选择Spring邮件发送~ 以下贴一下实现的代码以 ...

  9. hdu1116 Play on Words--并查集

    原题链接: pid=1116">http://acm.hdu.edu.cn/showproblem.php? pid=1116 一:原题内容 Problem Description S ...

  10. oc60--Category 分类 练习

    // main.m // Category练习 #import <Foundation/Foundation.h> #import "NSString+NJ.h" // ...