|
![]() | 作者: J [jsophie]
![]() |
登录 |
本题是<<C程序设计>>第二版 谭老师 书中PAGE138 例7.8 本人在TURBO C 2.0上怎么也得不出正确结果,不管我按要求输入多少个单词,都是显示 There are 1 words in the line. 请教为什么 #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); } |
地主 发表时间: 04-08-19 11:58 |
![]() | 回复: TomyChen [quest] ![]() |
登录 |
抄得不够仔细!!! else if(word==0); 后面的 ";" 看清了...咳... |
B1层 发表时间: 04-08-19 12:30 |
![]() | 回复: ljsh012 [ljsh012] ![]() |
登录 |
就是,细心点俄。 if语句后面是不用分号的。切记! |
B2层 发表时间: 04-08-19 12:35 |
![]() | 回复: qiezic [qiezic] ![]() |
登录 |
没错是分号的问题! [此贴被 剑圣风暴(qiezic) 在 08月19日14时09分 编辑过] |
B3层 发表时间: 04-08-19 12:45 |
![]() | 回复: J [jsophie] ![]() |
登录 |
我昏 你们学的还不错嘛,但真的很大意了. if(c==' ')word ==0; 大家注意了if后面是(),但()后面就是语句了啊,所以要分号的. if (表达式) 语句; 大家不信自己在TURBO C2.0上试试,告诉我为什么不能得出正确结果. |
B4层 发表时间: 04-08-19 13:10 |
![]() | 回复: Garu [syshunter] ![]() |
登录 |
if (表达式) 语句; //是没错 else if( 表达式) //这里弄;干什么? { 语句; } 楼主注意看B1层的回复。 |
B5层 发表时间: 04-08-19 13:43 |
![]() | 回复: TomyChen [quest] ![]() |
登录 |
剑圣风暴 [qiezic] 论坛用户 你说是string的问题!? |
B6层 发表时间: 04-08-19 14:11 |
![]() | 回复: qiezic [qiezic] ![]() |
登录 |
NO,NO! 是太久没玩C,搞错了! Sorry! ![]() |
B7层 发表时间: 04-08-20 13:29 |
![]() | 回复: windflower [windflower] ![]() |
登录 |
else if(word==0); 很明显,这句后面多了个分号 |
B8层 发表时间: 04-08-20 21:34 |
![]() | 回复: baobao [gnijnil] ![]() |
登录 |
那书里有几个,在我的机上怎么答案会不一样,也不会出错,就是答案不一样![]() ![]() 就像楼猪的那样! [此贴被 baobao(gnijnil) 在 08月20日22时03分 编辑过] |
B9层 发表时间: 04-08-20 22:02 |
![]() | 回复: TomyChen [quest] ![]() |
登录 |
[quote] 我昏 你们学的还不错嘛,但真的很大意了. if(c==' ')word ==0; 大家注意了if后面是(),但()后面就是语句了啊,所以要分号的. if (表达式) 语句; 大家不信自己在TURBO C2.0上试试,告诉我为什么不能得出正确结果 [quote] 楼主啊。。。细心一点!!! |
B10层 发表时间: 04-08-21 08:27 |
![]() | 回复: kenter1643 [kenter1643] ![]() |
登录 |
#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);(如果在这里加了分号就表明if(条件)执行;(执行为空)for的循环范围变了,对下的程序只执行一次,所以你的结果只会输出num++就是1) {word=1; num++;} printf("There are %d words in the line.\n",num); } |
B11层 发表时间: 04-08-23 02:35 |
![]() | 回复: J [jsophie] ![]() |
登录 |
谢谢大家! |
B12层 发表时间: 04-08-23 19:53 |
![]() | 回复: yuanrulai [yuanrulai] ![]() |
登录 |
嗯 |
B13层 发表时间: 04-08-25 10:57 |
![]() | 回复: caesar000 [caesar000] ![]() |
登录 |
else if(word==0); {word=1; num++;} printf("There are %d words in the line.\n",num); } 这两行都有错! else if(word==0); /*多了分号*/ {word=1; num++;} /*分号位置有错*/ |
B14层 发表时间: 04-08-26 16:38 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号