k&r圣经上的一个习题答案,高手点评一下
时间:2010-08-01
来源:互联网
本帖最后由 pxbfeiniao 于 2010-08-01 17:36 编辑
我是一个初学者,正在研读K&R圣经,发现其中的习题并不简单,常常要考虑良久才能完成。下面的一个习题答案大家点评一下(介绍数组那章):
编写一个程序,打印输入中单词长度的直方图。我的答案用到了指针,似乎有点不合规则。
复制代码
我是一个初学者,正在研读K&R圣经,发现其中的习题并不简单,常常要考虑良久才能完成。下面的一个习题答案大家点评一下(介绍数组那章):
编写一个程序,打印输入中单词长度的直方图。我的答案用到了指针,似乎有点不合规则。
- [code]
- /*
- 这是K&R圣经上的一个习题解答。
- 题目:
- 编写一个程序,打印输入中单词的直方图。
- */
-
- #include <stdio.h>
- #include <stdlib.h>
-
- int main(void)
- {
- char c;
- int i = 0;
- int j = 0;
- int k = 0;
- int r = 0;
- int s = 0;
- int t = 0;
-
- int m[100]; //保存非字母字符的输入次序。
- int n[100]; //保存两个非字母字符之间的间隔长度。
-
- int o[100]; //保存“真正”单词的长度
- int *p = o;
-
- m[0] = 0;
-
- while ((c = getchar()) != EOF) {
- ++i;
- if (c == ' ' || c == '\n' || c == '\t'
- || c == ',' || c == '.'
- || c == '!' || c == '?') {
- ++j;
- m[j] = i;
- }
- }
-
- for (k = 0; k < j; ++k) {
- n[k] = m[k+1]-m[k]-1;
- if (n[k]) { //过滤零长度单词和非字母“单词”。
- *p =n[k];
- ++p;
- ++s;
- }
- }
-
- for (;t<s;++t) {
- printf("\n the word's length of NO.%d is :", t+1);
- r = 0;
- for (;r<o[t];r++) {
- printf("*");
- }
- printf("\n");
- }
-
- return 0;
- }
作者: pxbfeiniao 发布时间: 2010-08-01
回复 pxbfeiniao
要试着学会充分利用函数库。
要试着学会充分利用函数库。
作者: donglongchao 发布时间: 2010-08-01
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28