打印输入中单词长度的直方图
我是菜鸟,不知道以下程序错误在哪,没法打印直方图
#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 15void 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 15void 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'); }}//这CSDN怎么这么烂啊,最近老是回复看不到,我擦。