读书人

大家帮小弟我看一下这段程序在语法上有

发布时间: 2012-03-09 21:42:54 作者: rapoo

大家帮我看一下这段程序在语法上有什么问题,谢了
程序主要功能是统计每一行的单词数,并将单词数最多的行输出
#include <stdio.h>
#define OUT 0
#define IN 1
int getword(int word[])
{
int i,c,state=OUT,nw=0;
for(i=0;(c=word[i])!= '\0 ';i++)
{
if(state==OUT&&c!= ' ')
{
nw++;
state=IN;
}
else if(c== ' ')
state=OUT;
}
return nw;
}
void copy(int word[],int aim[])
{
int i;
for(i=0;word[i]!= '\0 ';i++)
aim[i]=word[i];
aim[i]= '\0 ';
}
void main()
{
int word[1000],aim[1000],i,c,max=0,a;
while((c=getchar())!=EOF)
for(i=0;(word[i]=c)!= '\n ';i++)
;
a=getword(word[]);
if(a> max)
copy(word[],aim[]);
for(i=0;aim[i]!= '\0 ';i++)
printf( "%c ",aim[i]);
}

在VC中编译时出现第32行(即a=getword(word[]);这一行)和第34行error C2059: 语法错误 : “]”
在TC中出现第32行和第34行 expression syntax in function main
第33行possible use of 'a ' before definition it in function main

[解决办法]
void main()
{
int word[1000],aim[1000],i,c,max=0,a;
while((c=getchar())!=EOF)
for(i=0;(word[i]=c)!= '\n ';i++)
;
a=getword(word); //直接用数组名做参数就可以啦
if(a> max)
copy(word,aim);//同上
for(i=0;aim[i]!= '\0 ';i++)
printf( "%c ",aim[i]);
}

读书人网 >C语言

热点推荐