我正在研究K& R的 The C Programming Language 的锻炼计划。我想在输入中打印单词的长度,然后用字符“X”打印长度。
#include<stdio.h>
void main ()
{
int c,a[20];
int j,k,i=0;
int ch;
int count,count1;
while((c = getchar()) != EOF)
{
if(c == ' ' || c == '\n' || c == '\b')
{
++i;
a[i] = count;
k = i;
count = 0;
}
else
{
++count;
}
}
for(i = 0; i < k; i++)
{
count1 = a[i];
for(j = 0; j < count1; j++)
{
printf("x");
}
printf("\n");
}
printf("\n");
}
答案 0 :(得分:1)
你还应该使用一个状态变量来告诉你当前是否在一个单词里面。
尝试:
state=OUT;
len=0;
max=-1;
while((c=getchar())!=EOF)
{
if( (c==' '||c=='\n'||c=='\t') && state==IN)
{
state=OUT;
l[len-1]++;
if(l[len-1]>max)
max=l[len-1];
len=0;
}
else
{
state=IN;
len++;
}
}
PS:OUT和IN是符号常量,可以具有任何但不同的值。
此外,您必须在数组中增加与长度(l[len-1]++
)匹配的元素。