您的位置:首页 > 其它

编写一个程序,打印输入中单词长度的水平和垂直方向直方图

2017-03-05 17:14 309 查看
编写一个程序,打印输入中单词长度的水平和垂直方向直方图

题目来源:C程序设计语言习题1-13

//横向打印输入中单词长度的直方图
#include<stdio.h>
#define MAXWORDNUM  100    //最大单词个数
main()
{
int c_last,c_now;
int i = 0,j = 0;
int len = 0,maxlen = 0;        //每个单词的长度 ,最大单词长度
int num = 0;
int word[MAXWORDNUM]; 	//保存单词长度的数组
for (i = 0;i<MAXWORDNUM;i++)
word[i] = 0;
i = 0;
c_now = getchar();
c_last = c_now;
if (c_last != '\40' )
++len;

while ((c_now = getchar()) != EOF)
{
if ((c_now != '\40') && (c_now != '\n'))
++len;

if (((c_now == '\40') && (c_last != '\40')) || ((c_now == '\n') && (c_last != '\40')))
{
word[num]= len;
++num;
len = 0;
}
c_last = c_now;
}

for (i = 0;i<num;i++)
{
printf("%d:",i+1);
for (j = 0;j<word[i];j++)
printf("*");
printf("\n");
}

}

//纵向向打印输入中单词长度的直方图
#include<stdio.h>
#define MAXWORDNUM  100
main()
{
int c_last,c_now;
int i = 0,j = 0;
int len = 0,maxlen = 0;
int num = 0;
int word[MAXWORDNUM];
for (i = 0;i<MAXWORDNUM;i++)
word[i] = 0;
i = 0;
c_now = getchar();
c_last = c_now;
if (c_last != '\40' )
++len;

while ((c_now = getchar()) != EOF)
{
if ((c_now != '\40') && (c_now != '\n'))
++len;

if (((c_now == '\40') && (c_last != '\40')) || ((c_now == '\n') && (c_last != '\40')))
{
word[num]= len;
if (word[num] > maxlen)
maxlen = word[num];
++num;
len = 0;
}
c_last = c_now;
}

for (j = maxlen;j>0;j--)
{
for (i = 0;i<num;i++)
{
if (word[i] >= j)
printf("* ");
else
printf("  ");
}
printf("\n");
}

for (i = 0;i<num;i++)
printf("%d ",i+1);
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐