打印输入中单词长度的直方图,该怎么处理

打印输入中单词长度的直方图
我是菜鸟,不知道以下程序错误在哪,没法打印直方图
#include <stdio.h>
#define MAXNUMBER 15
void main()
{
    int nc=0;
    int i;
    int n;
    int w[MAXNUMBER];
    int c;
    for(i=0;i<MAXNUMBER;i++)//w[]是单词数组
    {
        w[i]=0;//各个单词初始时都是0个字母
    }
   while((c=getchar())!=EOF)//计算每个单词的字母数
   {
       if(c==' '||c=='\t'||'\n')
       {

           w[i]=nc;
           ++i;
           nc=0;

       }

       if(c!=' '&&c!='\t'&&c!='\n')
       ++nc;
   }
for(i=0;i<MAXNUMBER;i++)//打印直方图
{
    for(n=1;n<w[i];n++)
    printf("%c",'*');
    printf("%c",'\n');
}
}

------解决方案--------------------

#include <stdio.h>
#define MAXNUMBER 15
void main()
{
  int nc=0;
  int i;
  int n;
  int w[MAXNUMBER];
  int c;
  for(i=0;i<MAXNUMBER;i++)//w[]是单词数组
  {
  w[i]=0;//各个单词初始时都是0个字母
  }
  //注意:你的i值已经是MAXNUMBER

  i=0;//恢复为0值
  while((c=getchar())!=EOF)//计算每个单词的字母数
  {
  if(c==' '
------解决方案--------------------
 c=='\t'
------解决方案--------------------
 c=='\n')//if(c==' '
------解决方案--------------------
 c=='\t'
------解决方案--------------------
 '\n')少了个判断语句
  {
  w[i]=nc;
  ++i;
  nc=0;//
  
  }
  else//用else代替吧
  {//if(c!=' '&&c!='\t'&&c!='\n')
  ++nc;
  }
  }

  for(i=0;i<MAXNUMBER;i++)//打印直方图
  {
  for(n=0;n<w[i];n++)
  {
  printf("%c",'*');
  }

printf("%c",'\n');
  }
}


------解决方案--------------------


#include <stdio.h>
#define MAXNUMBER 15
void main()
{
  int nc=0;
  int i;
  int n;
  int w[MAXNUMBER];
  int c;
  for(i=0;i<MAXNUMBER;i++)//w[]是单词数组
  {
  w[i]=0;//各个单词初始时都是0个字母
  }
  //注意:你的i值已经是MAXNUMBER

  i=0;//恢复为0值
  while((c=getchar())!=EOF)//计算每个单词的字母数
  {
  if(c==' '
------解决方案--------------------
 c=='\t'
------解决方案--------------------
 c=='\n')//if(c==' '
------解决方案--------------------
 c=='\t'
------解决方案--------------------
 '\n')少了个判断语句
  {
  w[i]=nc;
  ++i;
  nc=0;//
  
  }
  else//用else代替吧
  {//if(c!=' '&&c!='\t'&&c!='\n')
  ++nc;
  }
  }

  for(i=0;i<MAXNUMBER;i++)//打印直方图
  {
  for(n=0;n<w[i];n++)
  {
  printf("%c",'*');
  }

printf("%c",'\n');
  }
}
//这****怎么这么烂啊,最近老是回复看不到,我擦。