C语言有点小问题

#include<stdio.h>#include<stdlib.h>intmain(){printf("请输入一行字符,长度不超过254个,由英文的空格,逗号,句号和字... #include <stdio.h>
#include <stdlib.h>
int main()
{
printf("请输入一行字符,长度不超过254个,由英文的空格,逗号,句号和字母组成\n");
char str[255];
int i,num=0;
gets(str);
if(str[0]!=' ')
num=1;
for(i=0;str[i];i++)

if(str[i]==' '&&(str[i+1]!=' '||(str[i]==','&&str[i+1]!=','||(str[i]=='.'&&str[i+1]!='.')//前一个是“英文的空格或逗号或句号”,并且后一个是字母时,单词数加1
num++;

printf("%d",num);
return 0;
}
哪里不对怎么改?
功能是输入一行字符,统计其中有多少个单词,单词之间用空格,逗号,或句号分隔开。
展开
 我来答
钦之璇
2017-12-09 · 超过17用户采纳过TA的回答
知道答主
回答量:40
采纳率:20%
帮助的人:13.1万
展开全部
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,num=0;
char str[254];    //定义数组时放在前面定义
printf("请输入一行字符,长度不超过254个,由英文的空格,逗号,句号和字母组成\n");
gets(str);
if(str[0]!=' ')
num=1;
for(i=0;str[i]!='\0';i++)
{     //if后面的判断条件括号要打齐,整体要加个括号,各判断条件分别加括号
if((((str[i]==' ')&&(str[i+1]!=' '))||((str[i]==','&&str[i+1]!=',')||(str[i]=='.'&&str[i+1]!='.')))&&(str[i+1]!='\0'))//前一个是“英文的空格或逗号或句号”,并且后一个是字母时,单词数加1
num++;
}
printf("%d\n",num);
return 0;
}望采纳
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式