学习C语言,编写的下面程序,用VC++6.0运行,提示有错误,我怎么找不出错误在哪里,怎么改才是正确的呢?

#include<stdio.h>voidmain(){charstring[81];gets(string);inti,num,word;num=word=0;char... #include<stdio.h>
void main()
{
char string[81];
gets(string);
int i,num,word;
num=word=0;
char c;
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);

}
展开
 我来答
百度网友c1a4ffce9
2013-08-11
知道答主
回答量:12
采纳率:0%
帮助的人:6.4万
展开全部

程序的功能应该是计算输入了几个单词,在我的编译器里没有错误的呀。


追问
你用的什么编译器?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓉雪球
2013-08-11 · TA获得超过8998个赞
知道大有可为答主
回答量:2846
采纳率:79%
帮助的人:711万
展开全部
我觉得是个小问题,你把第7行的定义上移一行,先定义后赋值
#include<stdio.h>
void main()
{
char string[81];
gets(string);
int i,num,word;
char c;
num=word=0;
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);

}
追问
先定义,后赋值。必须是把所有的变量都定义,并且放在一起啊,然后在对变量赋值。我本来以为先定义,char c;   ,后赋值,for(i=0;(c=string[i])!='\0';i++)     。对c这个变量不就是先定义了然后再赋值吗?
我改变了一下顺序,真的没有错误了,第7行的定义上移一行,并且第5行的出入字符语句下移3行。就全正确了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ry_x
2013-08-11 · TA获得超过941个赞
知道小有建树答主
回答量:1095
采纳率:0%
帮助的人:733万
展开全部
我这里编译没错啊……
追问
你用的什么编译器?我用的VC++6.0
追答
MinGW
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式