|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
输入一行英文句子,统计其中的单词个数。例如,输入”How are you.”,则输出3
- #include <stdio.h>
- #include <string.h>
- int main(void)
- {
- int a,b,i,n;
- char str[100];
- gets(str);
- b=strlen(str);
-
- for(i=0;i<b;i++)
- {
- if(str[i]==' ')
- {
- n++;
- }
- printf("%d",n);
- return 0;
- }
-
- }
复制代码
本帖最后由 番杰 于 2021-11-28 20:16 编辑
你的n在定义的时候没有赋值为0;
所以打印出来的值会是一个随机数;
另外后面的printf();和return 0;应该写在for循环的外面;
再另外,在打印n的值时需要加一;
就以输入“how are you”为例;这个字符串中只有两个‘ ’(空格),但是却有三个单词,单词数会比空格数多一,所以结果加一。
你的代码修改后:
- #include <stdio.h>
- #include <string.h>
- int main(void)
- {
- int a,b,i,n = 0; //赋初值
- char str[100];
- gets(str);
- b=strlen(str);
-
- for(i=0;i<b;i++)
- {
- if(str[i]==' ')
- {
- n++;
- }
- }
- printf("%d\n",n+1);//加一
- return 0;
- }
复制代码
我自己写的代码:
- #include <stdio.h>
- #include <string.h>
- int main(void)
- {
- int n = 0,ch;
- printf("请输入字符串:");
- while((ch=getchar())!='\n')
- {
- if(ch == ' ')
- n++;
- }
-
- printf("%d",n+1);
- return 0;
- }
复制代码
|
|