虽然写的有点那个,不过没什么问题,能实现你的要求啊,LZ你是怎样测试的?用你的程序我跑起来测试,没问题,见图:
#include
#include
void main()
{
int c,nl,nw,nc;
nl=0;//这里默认都是0;
nw=0;
nc=0;
while((c=getchar())!='@')
{
if(c=='\n') //如果是\n就把行数+1
nl++;
if(!isalnum(c))//如果不是单词就把单词数+1
nw++;
else //如果是单词 就把字符数+1
nc++;
}
printf("character=%d\nlines=%d\nwords=%d\n",nc,nl,nw);
}
测试没问题,是不是你输入格式不对呢。