练习1-14  编写一个程序,打印输入中各个字符出现频度的直方图。

代码如下:

#include <stdio.h>    //    包含标准库的信息。

int main()    //    定义名为main的函数,它不接受参数值。
{
printf("======打印输入字符频度的直方图======\n");
unsigned int ws[]; // 字符频度数组。
int i, j, c;
i = j = c = ;
// 默认每个字符出现0次。
for (i = ; i < ; i++)
{
ws[i] = ;
} while ((c = getchar()) != EOF)
{
// 进行字符匹配,如果匹配到字符频度就+1;
for (i = ; i < ; i++)
{
if (i == c) {
ws[i] += ;
break;
}
}
} // 显示水平直方图。
for (i = ; i < ; i++)
{
if (ws[i] > && i != '\t' && i != '\n' && i != ' ')
{
printf("%c:", i);
for (j = ; j < ws[i]; j++) {
printf("*");
}
printf("\n");
}
} getchar(); // 防止控制台一闪而过,需要接受任意字符后在关闭控制台。
return ; // 向执行环境返回一个整形,0代表执行成功。
}

个人理解:

主要是加深对数组操作的理解。

C程序设计语言练习题1-14的更多相关文章

  1. C程序设计语言练习题1-4

    练习1-4 编写一个程序打印摄氏温度转换为相应华氏温度的转换表. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // 定义名为main的 ...

  2. C程序设计语言练习题1-23

    练习1-23 编写一个删除C语言程序中所有的注释语句.要正确处理带引号的字符串与字符常量.在C语言中,注释不能嵌套. 代码如下: #include <stdio.h> // 包含标准库的信 ...

  3. C程序设计语言练习题1-10

    练习1-10 编写一个将输入复制到输出的程序,并将起重的制表符替换为\t,把回退符替换成\b,把反斜杠替换为\\.这样可以将制表符和回退符以可见的方式显示出来. 代码如下: #include < ...

  4. C程序设计语言练习题1-16

    练习1-16 修改打印最长文本行的程序的主程序main,使之可以打印任意长度的输入行的长度,并尽可能多地打印文本. 代码如下: #include <stdio.h> // 包含标准库的信息 ...

  5. C程序设计语言练习题1-22

    练习1-22 编写一个程序,把较长的输入行”折“成短一些的两行或多行,折行的位置在输入行的第n列之前的最后一个非空格之后.要保证程序能够智能地处理输入行很长以及在制定的列前没有空格或制表符时的情况. ...

  6. C程序设计语言练习题1-21

    练习1-21 编写程序entab,将空格串替换为最少数量的制表符和空格,但要保持单词之间的间隔不变.假设制表符终止的位置与练习1-20的detab程序的情况相同.当使用一个制表符或者一个空格都可以打到 ...

  7. C程序设计语言练习题1-20

    练习1-20 编写程序detab,将输入中的制表符替换成适当数目的空格,使空格充满到下一个制表符终止位的地方.假设制表符终止位的位置是固定的,比如每隔n列就会出现一个制表符终止位.n应该是变量还是符号 ...

  8. C程序设计语言练习题1-19

    练习1-19 编写函数reverse(s),将字符串s中的字符顺序颠倒过来.使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序.代码如下: #include <stdio.h> // ...

  9. C程序设计语言练习题1-18

    练习1-18 编写一个程序,删除每个输入行末尾的空格及制表符,并删除完全是空格的行. 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXLI ...

  10. C程序设计语言练习题1-17

    练习1-17 编写一个程序,打印长度大于80个字符的所有输入行. 代码如下: #include <stdio.h> // 包含标准库的信息. #define MAXROW 10 // 最大 ...

随机推荐

  1. ebtablesBridge

    ebtables和iptables类似,都是Linux系统下网络数据包过滤的配置工具.既然称之为配置工具,就是说过滤功能是由内核底层提供支持的,这两个工具只是负责制定过滤的rules. ebtable ...

  2. Eucalyptus使用的技术

    libvirt Libvirt 库是一种实现 Linux 虚拟化功能的 Linux® API,它支持各种虚拟机监控程序,包括 Xen 和 KVM,以及 QEMU 和用于其他操作系统的一些虚拟产品. N ...

  3. Hive从概念到安装使用总结

    一.Hive的基本概念 1.1 hive是什么? (1)Hive是建立在hadoop数据仓库基础之上的一个基础架构: (2)相当于hadoop之上的一个客户端,可以用来存储.查询和分析存储在hadoo ...

  4. sublime 生成网页头文件

    1.普通HTML 输入html:xt然后按tab键即可生成如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...

  5. Utf-8 转 GBK

    QTextCodec *gbk = QTextCodec::codecForName("gb18030"); QTextCodec *utf8 = QTextCodec::code ...

  6. apply 与arguments的用法

    一个小练习: 用一个 函数来代替console.log()的功能 function log(a){ console.log.apply(null,arguments);//arguments 是传的实 ...

  7. JS能力测评试题

    找出元素 item 在给定数组 arr 中的位置 function indexOf(arr, item) { return arr.indexOf(item); } function indexOf( ...

  8. Managing Hierarchical Data in MySQL

    Managing Hierarchical Data in MySQL Introduction Most users at one time or another have dealt with h ...

  9. Qemu之Network Device全虚拟方案一:前端网络流的建立

    KVM在I/O虚拟化方面,传统的方式是使用Qemu纯软件的方式来模拟I/O设备,当中包含常常使用的网卡设备.这次我们重点分析Qemu为实现网络设备虚拟化的全虚拟化方案.本主题从三个组成方面来完整描写叙 ...

  10. JSP具体篇——out

    out对象 out对象用于在web浏览器上输出信息,而且管理应用server上的输出缓冲区.在使用out对象输出数据时.能够对数据缓冲区进行操作.及时清除缓冲区中残留的数据.为其它输出让出缓冲空间. ...