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 1022
1022 D进制的A+B 输入两个非负10进制整数A和B(<=2^30^-1),输出A+B的D (1 < D <= 10)进制数. 输入格式: 输入在一行中依次给出3个整数A.B和D ...
- 10大mysql需要注意的参数
MySQL变量很多,其中有一些MySQL变量非常值得我们注意,下面就为您介绍一些值得我们重点学习的MySQL变量,供您参考. 1 Threads_connected 首先需要注意的,想得到这个变量的值 ...
- Git常用的基本操作
一.如何学习git指令 1.查看帮助:git help2.查看指定命令:git help clone3.搜索关键字:/chone 4.退出帮助文档:输入Q 二.常见命令 1.初始化git本地仓库:先进 ...
- BZOJ 2725: [Violet 6]故乡的梦
求出最短路径树,对于一个询问(x,y) 若不在树上S->T的链上,则答案不变,若在链上,考虑用一条非树边替换这条边,这条非树边必须跨越x->y这条边,线段树维护区间最小值 #include ...
- http过程
当在浏览器里输入URL地址时,http的通讯过程: 1) 连接 DNS解析:URL——>DNS服务器(找到返回其ip,否则继续将DNS解析请求传给上级DNS服务器) Socket连接:通过IP和 ...
- 【11】specified value,computed value,used value计算方法
[11]specified value,computed value,used value计算方法 specified value(规范值): 计算方法如下: 如果样式表设置了一个值,使用这个值 如果 ...
- Centos 6.5升级openssl到1.1.0f版本
wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz ./config --prefix=/usr/local/openssl share ...
- 【LeetCode】Combination Sum II(组合总和 II)
这道题是LeetCode里的第40道题. 题目要求: 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. can ...
- linux open()文件操作
python程序中经常用到的读文件: f = open("___", 'r') for line in f:#这里每次读取文件的一行,line为字符串,串尾包括了'\n'!!! ...
- Codeforces Round #417 (Div. 2) 花式被虐
A. Sagheer and Crossroads time limit per test 1 second memory limit per test 256 megabytes input sta ...