caine12345 2016-11-08 13:49 采纳率: 75%
浏览 962

求老司机帮小白捋一下程序

#include

#define MAXHIST 15
#define MAXWORD 11
#define IN 1
#define OUT 0

int main()
{
int c, i, nc, state;
int len; /*length of each bar*/
int maxvalue; /*maximum value for wl[]*/
int ovflow; /*number of overflow words*/
int wl[MAXWORD]; /*word length counters*/

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
                ++ovflow;
        nc = 0;
    }
        else if (state == OUT) {
            state = IN;
            nc = 1;
        }
        else
            ++nc;
    }
    maxvalue = 0;
    for (i = 1; i < MAXWORD; ++i)
        if (wl[i] > maxvalue)
            maxvalue = wl[i];
    for (i = 1; i < MAXWORD; ++i)
    {
        printf("%5d - %5d:", i, wl[i]);
        if (wl[i] > 0)
        {
            if ((len = wl[i] * MAXHIST / maxvalue) <= 0)
                len = 1;
        }
        else
            len = 0;
        while (len > 0)
        {
            putchar('*');
            --len;
        }
        putchar('\n');
    }
    if (ovflow > 0)
        printf("There are %d words >= %d\n", ovflow, MAXWORD);
    return 0;

}
求大大帮忙注释一下每句话的意思,小白谢谢了!

  • 写回答

1条回答 默认 最新

  • threenewbee 2016-11-08 15:49
    关注

    这段程序的意思是找出超过长度为MAXWORD的单词。

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料