打印单词长度的直方图(3)

方案三:
 
一种新的思路,用该字符是否为字母或连字符判断是否为一个单词,是程序更简单、更容易理解。

# include <stdio.h>
# define MAX 20
# define OUT 0
# define IN 1

int main(void)
{
 int length[MAX];
 int c;
 int vocl = 0;
 int state = OUT;
 int i;
 
 for(vocl = 0; vocl < MAX; vocl++){
  length[vocl] = 0;
 }
 vocl = 0;
 while((c = getchar()) != EOF){
  if(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z' || c == '-'){
   vocl++;
  } else{
   length[vocl]++;
   vocl = 0;
  }
 }

for(vocl = 0; vocl < MAX; vocl++){
  if(length[vocl] != 0){
   printf("%2d  ", vocl);
   for(i = 1; i <= length[vocl]; i++){
    putchar('*');
   }
   putchar('\n');
  }
 }
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/387c7872346f76c706d35aa4d0c177d2.html