【原创】C程序设计语言(2版KR) - C语言基础知识(2)
5. 数组
教材答案:
/*************************************************************************
> File Name: 1_13.c
> Author: Geng
> Mail: genglut@163.com
> Created Time: Tue 18 Nov 2014 11:17:57 PM CST
************************************************************************/
/**************************************************************
直方图定义:
n:某个长度单词出现的次数(长度为4的单词出现了9次,则n = 9)
M:出现最频繁的长度的次数
H:定义的直方图的最大长度(本例中为MAXHIST)
**************************************************************/
#include <stdio.h>
#define MAXHIST 15 //直方图的最大长度
#define MAXWORD 11 //单词的最大长度
#define IN 1 //在单词中
#define OUT 0 //在单词外
int main()
{
int c, i, nc, state; //nc:单词的长度
int len; //直方图中每个直方条的长度
int maxvalue; //wl数组的最大值
int ovflow; //长度大于或等于MAXWORD的单词的数量
int wl[MAXWORD]; //按单词长度值0~11,统计输入中各长度的单词数,存放在wl数组中
state = OUT;
nc = 0;
ovflow = 0;
for(i = 0; i < MAXWORD; ++i)
wl[i] = 0;
while((c = getchar()) != EOF)
{
if(c == ' ' || c == '\n' || c == '\t')
{
state = OUT;
if(nc > 0)
if(nc < MAXWORD)
++wl[nc];
else
++