c语言 单词长度统计,编写一个程序,打印输入中单词长度的直方图
該樓層疑似違規已被系統折疊?隱藏此樓查看此樓
#include
#define inside 1
#define outside 0
/*編寫一個程序,統計并打印輸入單詞不同長度的個數,并打印輸入中單詞長度的直方圖*/
main ()
{
int test,c,i,j,k;
int tj[10];
test=outside;
for (i=0;i<10;++i)
tj[i]=0;
j=0;
k=0;
while ((c=getchar())!=EOF)
{
if (c<65||c>122)
{
if (test==inside)
++tj[j-1];
test=outside;
j=0;
}
else
{
++j;
test=inside;
}
}
for (i=1;i<11;++i)
{
k=k+tj[i-1];
printf("%d個字母長度的單詞有%d個\n",i,tj[i-1]);
}
printf("所有單詞總共有%d個\n",k);
/*上面是統計單詞數并輸出的,下面的代碼是打印直方圖的*/
/*這里先打印橫向直方圖*/
printf("\n字母長度\t單詞個數");
for (i=1;i<11;++i)
{
printf("\n%2d個字母:",i);
if(tj[i-1]>=1)
{
for (j=1;j<=tj[i-1];j++)
putchar(1);
}
}
/*下面打印豎向直方圖*/
int tem;
tem=0;
for (i=1;i<11;++i)
if (tem
tem=tj[i-1]; /*這里是找出數組tj[i]的最大值那個并賦值給tem,用來確定縱坐標的最大值*/
printf("\n\n單詞個數(個)\n");
printf(" ");putchar(24); /*此處打印縱坐標開始位置,下面每行掃描打印整個圖表*/
for (i=tem;i>0;i--)
{
printf("\n%3d",i);putchar(124);putchar(45); /*這里打印每行圖表左邊部分,下面開始打每行的柱狀圖*/
for (j=0;j<10;j++)
{
if (tj[j]>=i)
{
printf(" ");
putchar(1);
}
else
printf(" ");
}
} /*下面開始打印橫坐標*/
printf("\n 0");putchar(124);
for (i=1;i<33;++i)
putchar(45);
putchar(26);
printf("單詞長度(n個字母/單詞)\n");
printf(" ");
for (i=1;i<=10;i++)
printf("%3d",i);
}
總結
以上是生活随笔為你收集整理的c语言 单词长度统计,编写一个程序,打印输入中单词长度的直方图的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 常用协议端口号整理
 - 下一篇: MATLAB——DEMATEL代码(转载