标题:清华谭浩强《C程序设计》例题有错?
只看楼主
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
 问题点数:0 回复次数:20 
清华谭浩强《C程序设计》例题有错?

清华大学出版社 谭浩强《C程序设计》第二版 138页

目的:

实现算出键盘输入单词总数(有间隔),下面的程序总是得“1”不知怎么回事?(用TURBO C 3。0 FOR WINDOWS )

#include <stdio.h> main() { char string[81]; int i,num=0,word=0; char c; gets(string); for(i=0;(c=string[i])!='\0';i++) if(c=='') word=0; else if(word==0) { word=1; num++; } printf("there are %d words in the line.\n",num); }

[此贴子已经被作者于2004-12-25 15:54:04编辑过]

搜索更多相关主题的帖子: C程序设计 谭浩强 清华 例题 num 
2004-12-25 15:48
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 
if(c==' ') word=0;//    '   '  之间有个空格

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-12-25 15:55
ysfabm
Rank: 1
等 级:新手上路
威 望:1
帖 子:274
专家分:0
注 册:2004-11-9
得分:0 

编程就是这样一个空格也会让你运行不出结果,不过要用好我们的编译工具,因为它给你指出了哪一行有错误,用心的检查哪一行没错的!

[此贴子已经被作者于2004-12-25 16:03:01编辑过]


精诚所至,
       金石为开!
      PLM技术社区: [url=http://www.]www.[/url] 最专业的PLM技术讨论社区。
2004-12-25 16:02
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
得分:0 

加了空格,仍然不行! 有时出现反常的结果

编译出错提示: 在第8行 非可移动指针转换 在函数

for(i=0;(c=string[i])!='\0';i++) /第8行

但看了没错啊。。。

非常奇怪,


有缘相识!我中文系的 3月拿下C/C++/VC 5天写游戏 2月写游戏系统 有空去http://mykool.go2.
2004-12-25 18:35
aczhe
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2004-12-23
得分:0 

第8行没有问题。

推荐使用WIN-TC,在WINDOWS下操作很方便。可以复制、粘贴。


君子敬其在己者,而不慕其在天者,是已日进也。
2004-12-25 20:44
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
得分:0 

谢谢了,我就是用的 TURBO C 3.0 FOR WINDOWS

不过,我也觉得它有点问题,有时明明语法没问题,他说有问题,有时又好了,

要不麻烦给我传一个好用的?


有缘相识!我中文系的 3月拿下C/C++/VC 5天写游戏 2月写游戏系统 有空去http://mykool.go2.
2004-12-25 22:34
lpanguan
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2004-12-20
得分:0 

在wintc下运行没问题。

谭浩强《C程序设计》第二版上的例题有不少错误,不过都是小错误。


2004-12-26 01:10
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
得分:0 

lpanguan你好啊! 女孩学电脑不容易呀, 向你致敬!

,,,加你好友,好吗?


有缘相识!我中文系的 3月拿下C/C++/VC 5天写游戏 2月写游戏系统 有空去http://mykool.go2.
2004-12-26 01:39
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
得分:0 
非常感谢!

非常感谢! 照你们说的,下了个WIN-TC,解决问题, 但又重新在我的TURBO C 3.0 FOR WINDWOS上保存了一下,也可以了,不知道哪里出了问题,害的我弄了半天..

[此贴子已经被作者于2004-12-26 02:25:21编辑过]


有缘相识!我中文系的 3月拿下C/C++/VC 5天写游戏 2月写游戏系统 有空去http://mykool.go2.
2004-12-26 02:19
心若在
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2004-9-21
得分:0 

楼主 你这个程序通过了吗

按你上面程序的意思就是遇到空格后面在遇到字符num才加一 这不是你的本意吧

做了点修改

#include <stdio.h> main() { char string[81]; int i,num=0,word=1; char c = NULL; gets(string); for(i=0;(c=string[i])!='\0';i++) { if(c==' ') word=0; if(word==1) { num++; } word=1; } printf("there are %d words in the line.\n",num); getch(); }

你在试试

[此贴子已经被作者于2004-12-26 11:48:57编辑过]


我知道我菜 但我会尽我最大的努力去帮助别人!
2004-12-26 11:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-10019-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.224477 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved