单词长度直方图
1 #define MAXWORDLEN 10 2 3 int FirstWord = 1 ; 4 int NewWord = 0 ; 5 int Space = 0 ; 6 int Doon = 0 ; 7 int wordlen = 0 ; 8 char c = 0 ; 9 char NumberBuf[MAXWORDLEN+1] ; 10 int thisvalue = 0 ; 11 int maxvalue = 0 ; 12 int thisside = 0 ; 13 int i = 0 ; 14 for (; i < MAXWORDLEN ; i++) 15 { 16 NumberBuf[i] = 0 ; 17 } 18 19 while (Doon == 0) 20 { 21 c = getchar() ; 22 23 if ( c == ' ' || c == '\t' || c == '\n' || c == '-' ) 24 { 25 if(Space == 0) 26 { 27 FirstWord = 0 ; 28 Space = 1 ; 29 30 if(wordlen <= MAXWORDLEN) 31 { 32 if (wordlen >0 ) 33 { 34 thisvalue = ++NumberBuf[wordlen -1]; 35 if (thisvalue > maxvalue) 36 maxvalue = thisvalue ; 37 } 38 }else 39 { 40 thisvalue = ++NumberBuf[MAXWORDLEN] ; 41 if (thisvalue > maxvalue) 42 maxvalue = thisvalue ; 43 44 } 45 46 47 } 48 if(c == '-') 49 Doon = 1 ; 50 51 }else 52 { 53 if(FirstWord == 1 || Space == 1) 54 { 55 FirstWord = 0 ; 56 Space = 0 ; 57 wordlen = 0 ; 58 } 59 wordlen ++ ; 60 } 61 62 } 63 64 for (thisvalue = maxvalue ; thisvalue >0 ; thisvalue--) 65 { 66 printf("%4d | ", thisvalue); 67 for (thisside = 0 ; thisside <= MAXWORDLEN ;thisside++) 68 { 69 if (NumberBuf[thisside] >= thisvalue) 70 printf("* "); 71 else 72 printf(" "); 73 } 74 printf("\n"); 75 } 76 printf(" +"); 77 for(thisside = 0; thisside <= MAXWORDLEN; thisside++) 78 { 79 printf("---"); 80 } 81 printf("\n "); 82 for(thisside = 0; thisside < MAXWORDLEN; thisside++) 83 { 84 printf("%2d ", thisside + 1); 85 } 86 printf(">%d\n", MAXWORDLEN); 87 88 system("pause");