首页    新闻    小组    交易    人才    下载    博客    代码贴    在线编程    论坛
C语言程序设计第二版 1.6数组练习1-13打印输入中单...

花开不败yyq2016-05-14 15:56 发布

标题:C语言程序设计第二版 1.6数组练习1-13打印输入中单词长度的直方图的问题
/* Note:Your choice is C IDE */
#include "stdio.h"
#define MAXHIST 15 //柱状图长度
#define MAXWORD 11 //单词长度
#define IN 1
#define OUT 0
void main()
{
      int c,i,nc,state;
      int len;
      int maxvalue; //wl[]的最大值
      int ovflow;//溢出单词数 
      int wl[MAXWORD];//单词长度计数
      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;                                 //为什么要--len?
        }
        putchar('\n');   
      }
      if(ovflow>0)
         printf("there are %d words >=%d\n",ovflow,MAXWORD);
     


问题:1
if((len=wl[i]*MAXHIST/maxvalue)<=0)
      len=1;   这段话表示什么意思?与下面的while语句有什么关系
问题:2
      while(len>0)
          {
           putchar('*');
           --len;
          }这段话与上面的if((len=wl[i]*MAXHIST/maxvalue)<=0)有什么关系吗?
问题3:
为什么一定要求最大数值?且以此为标准?
 for(i=1;i<MAXWORD;++i)
          if(wl[i]>maxvalue)
             maxvalue=wl[i];
}


求各位帮个忙解答疑惑!!!谢谢!!!
 
 
最新话题:

求助!

C语言程序设计现代方法第二版P152第...

请教C语言三个数中最大数问题

大家好!

求助大佬,请问哪里出错了,运行后显...

大神门有没有纯C版的NE10源码(官网...

请教

想学习C语言,请各位大佬多多指教。