清华大学出版社 谭浩强《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编辑过]
----------------解决方案--------------------------------------------------------
if(c==' ') word=0;// ' ' 之间有个空格
----------------解决方案--------------------------------------------------------
编程就是这样一个空格也会让你运行不出结果,不过要用好我们的编译工具,因为它给你指出了哪一行有错误,用心的检查哪一行没错的!
[此贴子已经被作者于2004-12-25 16:03:01编辑过]
----------------解决方案--------------------------------------------------------
加了空格,仍然不行! 有时出现反常的结果
编译出错提示: 在第8行 非可移动指针转换 在函数
for(i=0;(c=string[i])!='\0';i++) /第8行
但看了没错啊。。。
非常奇怪,
----------------解决方案--------------------------------------------------------
第8行没有问题。
推荐使用WIN-TC,在WINDOWS下操作很方便。可以复制、粘贴。
----------------解决方案--------------------------------------------------------
谢谢了,我就是用的 TURBO C 3.0 FOR WINDOWS
不过,我也觉得它有点问题,有时明明语法没问题,他说有问题,有时又好了,
要不麻烦给我传一个好用的?
----------------解决方案--------------------------------------------------------
在wintc下运行没问题。
谭浩强《C程序设计》第二版上的例题有不少错误,不过都是小错误。
----------------解决方案--------------------------------------------------------
lpanguan你好啊! 女孩学电脑不容易呀, 向你致敬!
,,,加你好友,好吗?
----------------解决方案--------------------------------------------------------
非常感谢! 照你们说的,下了个WIN-TC,解决问题, 但又重新在我的TURBO C 3.0 FOR WINDWOS上保存了一下,也可以了,不知道哪里出了问题,害的我弄了半天..
[此贴子已经被作者于2004-12-26 02:25:21编辑过]
----------------解决方案--------------------------------------------------------
楼主 你这个程序通过了吗
按你上面程序的意思就是遇到空格后面在遇到字符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编辑过]
----------------解决方案--------------------------------------------------------