c程序设计语言第一章2
练习1.13编写一个程序,打印输入中单词长度的直方图。水平方向的直方图比较容易绘制,垂直
方向的直方图则要困难些
#include <stdio.h>
#include <stdlib.h>
#define MAXHIST 15//定义直方图的最大值
#define MAXWORD 11//定义单词的最大字符数
#define IN 1
#define OUT 0
int main()
{
int nc;//单词所含的字符数
int maxvalue=;//记录单词所含字符的最大值
int c;
int i;
int len;//记录直方图所需打印的*数目
int overflow=;//记录越界单词的数目
int state=OUT;
int wc[MAXWORD];//记录不同长度单词的数目
//初始或数组
for(i=;i<MAXWORD;i++)
{
wc[i]=;
}
while((c=getchar())!=EOF)
{
if(c==' '||c=='\t'||c=='\n')
{
state=OUT;
if(nc>&&nc<MAXWORD)
{
++wc[nc];
}
else
{
++overflow;
}
nc=;
}
else
{
if(state==OUT)
{
state=IN;
nc=;//记录每个单词的开始
}
else
{
nc++;
}
}
}
//求出单词所含字符数的最大值
for(i=;i<MAXWORD;i++)
{
if(wc[i]>maxvalue)
{
maxvalue=wc[i];
}
}
for(i=;i<MAXWORD;i++)
{
printf("%3d-%3d:",i,wc[i]);
if(wc[i]>)
{
len=wc[i]*MAXHIST/maxvalue;//此部分用来同比例放大数值
}
else
{
len=;
}
while(len>)
{
putchar('*');
len--;
}
putchar('\n');
}
printf("%3d word(s) overflow!",overflow);
return ;
}
运行结果:

#include <stdio.h>
#include <stdlib.h>
#define MAXHIST 15//定义直方图的最大值
#define MAXWORD 11//定义单词的最大字符数
#define IN 1
#define OUT 0
int main()
{
int nc;//单词所含的字符数
int maxvalue=;//记录单词所含字符的最大值
int c;
int i,j;
// int len;//记录直方图所需打印的*数目
int overflow=;//记录越界单词的数目
int state=OUT;
int wc[MAXWORD];//记录不同长度单词的数目
//初始或数组
for(i=;i<MAXWORD;i++)
{
wc[i]=;
}
while((c=getchar())!=EOF)
{
if(c==' '||c=='\t'||c=='\n')
{
state=OUT;
if(nc>&&nc<MAXWORD)
{
++wc[nc];
}
else
{
++overflow;
}
nc=;
}
else
{
if(state==OUT)
{
state=IN;
nc=;//记录每个单词的开始
}
else
{
nc++;
}
}
}
//求出单词所含字符数的最大值
for(i=;i<MAXWORD;i++)
{
if(wc[i]>maxvalue)
{
maxvalue=wc[i];
}
}
for(i=MAXHIST;i>;i--)
{
for(j=;j<MAXWORD;j++)
{
if((wc[j]*MAXHIST/maxvalue)>=i)
{
printf(" *");
}
else
{
printf(" ");
}
}
putchar('\n');
}
for(i=;i<MAXWORD;i++)
{
printf("%3d",wc[i]);
}
putchar('\n');
for(i=;i<MAXWORD;i++)
{
printf("%3d",i);
}
printf("%3d word(s) overflow!",overflow);
return ;
}
运行结果:

练习1.14编写一个程序,打印输入中各个字符出现频度的直方图
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define MAXCHAR 121
#define MAXHIST 15
int main()
{
int c;
int i;
int maxvalue=;//记录单词所含字符的最大值
int len;//记录直方图所需打印的*数目
int wc[MAXCHAR];//记录不同长度单词的数目
//初始或数组
for(i=;i<MAXCHAR;i++)
{
wc[i]=;
}
while((c=getchar())!=EOF)
{
if(c<MAXCHAR)
++wc[c];
}
//求出单词所含字符数的最大值
for(i=;i<MAXCHAR;i++)
{
if(wc[i]>maxvalue)
{
maxvalue=wc[i];
}
}
for(i=;i<MAXCHAR;i++)
{
if(isprint(i))
{
printf("%3d-%c-%d ",i,i,wc[i]);
}
else
{
printf("%3d- -%d ",i,wc[i]);
}
if(wc[i]>)
{
len=wc[i]*MAXHIST/maxvalue;//此部分用来同比例放大数值
}
else
{
len=;
}
while(len>)
{
putchar('*');
len--;
}
putchar('\n');
} return ;
}
运行结果:

c程序设计语言第一章2的更多相关文章
- c程序设计语言第一章3
字符数组是C语言中最常用的数组类型.下面我们通过编写一个程序,来说明字符数组以反操作字符数组的函数的用法.该程序读入一组文本行,并把最长的文水行打印出来.该算法的基本框架非常简单: while (还有 ...
- c程序设计语言第一章1
1,c程序都是由函数和变量组成的. 练习1.6验证布尔表达式getchar()!= EOF的取值是0还是1 答: #include <stdio.h> #include <stdli ...
- c程序设计语言第一章5
练习1.20请编写程序d e t a b
- c程序设计语言第一章4
(昨天网络出现了问题,导致这篇没来得及上传,再次补上,今晚照常上传笔记) 练习1.19编写函数r e v e r s e ( s )将字符串s中的字符顺序颠倒过来.使用该函数编写一个程序,每次颠倒一个 ...
- C语言——第一章,程序设计和C语言
第一章,程序设计和C语言 一,程序和程序语言 程序:完成某项事物所预设的活动方式和活动过程 程序设计:人们描述(指程序)计算机要做的工作 程序设计语言及发展 1,机器语言 2,汇编语言 3 ...
- Intel汇编语言程序设计学习-第一章 基本概念
第一章基本概念 1.1 简单介绍 本书着重讲述MS-Windows平台上IA-32(Intel Architecture 32bit,英特尔32位体系架构)兼容微处理器的汇编语言程序设计,可以使用I ...
- c语言第一章第一节 认识变量
声明:本人大一新生,闲着无聊..写写c语言教程..菜鸟一枚..大神勿喷!!! 接下来我们都用dev来进行编译..vc++太古老了,没提示功能,不好上手,并且老是出毛病..vs太大了,编个c不至于,运行 ...
- 《JavaScript高级程序设计》——第一章JavaScript简介
第一章主要讲了JavaScript的诞生和发展.刚刚接触JavaScript的我,似乎对这些内容并不感兴趣,快速看了一遍就开始去看第二章了. 看完第一章,收获也就是了解到JavaScript由ECMA ...
- C#语言————第一章 第一个C#程序
第一章 第一个C#程序 ******************C#程序*************** ①:建立项目:文件-->新建-->项目-->c#-->控制台程 ...
随机推荐
- PAT Basic 1003
1003 我要通过! “答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答 ...
- 【SaltStack】一些常用模块举例
一.用户和用户组模块 说明:该sls文件用来在Minion端创建nginx用户和nginx用户组,当创建nginx用户时,对nginx用户组是否已存在做判断! (1) /srv/salt/creat ...
- 虚拟机里linux系统安装 CentOS 64-bit(6.4版本)——笔记
使用的虚拟机是VMware WorkStation 9.0(9.0.0 build-812388) 1. 安装过程中 选择 桥接 此系统可以拥有独立ip.Nat模式跟主机ip一样 2. 安装过程中选择 ...
- python 五——自定义线程池
内容概要: 1.low版线程池 2.绝版线程池 1.low版线程池 设计思路:运用队列queue 将线程类名放入队列中,执行一个就拿一个出来 import queue import threading ...
- 大数据学习——hbase数据库
Hhbase集群搭建 一 第一步 准备:搭建hadoop集群,搭建zookeeper 二 第二步:上传安装包 解压 1 tar -zxvf hbase-1.2.1-bin.tar.gz 重命名 2 ...
- unittest编写Web测试用例
案例:百度搜索关键词:“unittest” test_baidu.py: from selenium import webdriver from time import sleep import un ...
- lua-helloworld
write script file, a.lua: #!/usr/bin/lua print("hello world!") add excutable prperty to th ...
- ASP.NET(二):Application、Session和Server对象
导读:在上篇博客中,总结了:Reques对象和Response对象的区别,以及IsPostBack属性的用法.其中说明Asp.net有6大对象,那么,这次就介绍剩下的3个对象,分别是:Applicat ...
- Selenium WebDriver高级用法
Selenium GitHub地址 选择合适的WebDrvier WebDriver是一个接口,它有几种实现,分别是HtmlUnitDrvier.FirefoxDriver.InternetExplo ...
- redis主从原理介绍(三)
博客参考:散尽浮华的Redis主从复制下的工作原理梳理 此作者写的非常好,此处只做挪用,方便自己查看. Redis主从复制的配置十分简单,它可以使从服务器是主服务器的完全拷贝.需要清除Redis主从复 ...