c语言程序设计序言习题答案续.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
习题1-13(垂直方向直方图:编写一个程序打印输入中单词长度的垂直方向的直方图。 View Code 1 #include 2 #define IN 1 /* 在单词内部 */ 3 #define OUT 0 /* 在单词外部 */ 4 #define MAXLEN 15 /* 单词的最大长度 */ 5 #define MAXHIST 15 /* 直方图的最大长度 */ 6 #define MAXWORD 100 /* 限制输入单词的上限 */ 7 8 int wl[MAXWORD]; /* 用于存放单词长度的数组 */ 9 10 /* 打印垂直方向的直方图 */ 11 void main( 12 { 13 char c; 14 int i, j; 15 int len = 0; /* 当前单词的长度 */ 16 int wc = 0; /* 统计单词的个数 */ 17 int state = OUT; /* 状态初始化为在单词外部 */ 18 int maxvalue; /* 单词中最大长度 */ 19 for (int k=0; k 20 wl[MAXWORD] = 0; /* 数组进行初始化 */ 21 while ((c=getchar( != EOF { 22 if (c == || c == \t || c == \n { 23 if (state == IN { 24 if (len MAXLEN 25 len = MAXLEN; 26 wl[++wc] = len; 27 } 28 len = 0; 29 state = OUT; 30 } else if (state == OUT { 31 state = IN; 32 len++; 33 } else 34 len++; 35 } 36 if (wc 1 { 37 printf(no words!\n; 38 return; 39 }else if (wc MAXWORD 40 wc = MAXWORD; 41 maxvalue = 0; 42 for (i=1; i=wc; i++ { 43 if (wl[i] maxvalue 44 maxvalue = wl[i]; 45 } 46 /* 实现垂直直方图 */ 47 for (i=MAXHIST; i0; --i { 48 for (j=1; j=wc; j++ 49 if (wl[j] % MAXHIST = i { 50 printf( * ; 51 } else 52 printf( ; 53 putchar(\n; 54 } 55 for (i=1; i=wc; i++ 56 printf( %d , wl[i]; 57 putchar(\n; 58 } RT: 垂直直方图和水平直方图程序在统计单词个数之前都是一致的,垂直直方图使用另外一种处理方式。 习题1-14:编写一个程序,打印输入中各个字符出现频度的直方图。 View Code 1 #include 2 #include 3 #define MAXHIST 15 /* 直方图长度上限 */ 4 #define MAXCHAR 128 /* 出现的字符上限 */ 5 6 /* 统计输入中各个字符的直方图 */ 7 void main( 8 { 9 char c; 10 int i; 11 int charlen; /* 字符出现的频度 */ 12 int ch[MAXCHAR]; /* 保存所有字符的数组 */ 13 for (i = 0;i MAXCHAR; i++ 14 ch[i] = 0; 15 while ((c=getchar( != EOF { 16 if (c MAXCHAR 17 ++ch[c]; 18 } 19 for (i = 1; i MAXCHAR; ++i { 20 if (ch[i] MAXHIST 21 ch[i] = MAXHIST; 22 } 23 /* 输出水平方向直方图 */ 24 for (i = 1; i MAXCHAR; ++i { 25 charlen = ch[i]; 26 if (charlen 1 27 continue; 28 if (isprint(i /* 可显示的字符 */ 29 printf(%c %d\t, i, charlen; 30 else 31 printf( %d\t, charlen; 32 while (ch[i] 0 { 33 putchar(*; 34 --ch[i]; 35 } 36 putchar(\n; 37 } 38 } RT: 从打印的结果来看,第一个是不可显示的换行符,第二个是空格,其余是字母。

文档评论(0)

676200 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档