输入一行字符,统计其中包括多少单词,单词之间用空格分隔。
- 输入格式:a b c d回车(空格可在任意位置,列如行头行尾可能会有空格。另外数字和字母一样,也可作为单词)
- 输出格式:单词数
- 输入的字符串长度最长为256个字符
输入:(空格)a a 112 c(空格)回车
输出:4
#include <stdio.h>
#include <string.h>
int main() {
char str[257];
int n, m = 0, i;
gets_s(str, 256);
n = strlen(str);
for (i = 0; i <= n - 1; i++) {
if (str[i] == ‘ ‘) m++;
}
if (str[0] == ‘ ‘) {
if (str[n - 1] == ‘ ‘) printf("%d", m - 1);
else printf("%d", m);
}
else {
if (str[n - 1] == ‘ ‘) printf("%d", m);
else printf("%d", m + 1);
}
return 0;
}
上面的代码在VS2019上面运行是OK的,但是码图上面却不行。
正确的输出结果应该分别是5 3 7 5。
据说码图用的编译器是VS2010。
(这下没办法调试发现问题了)
下面是满分的代码:
#include<stdio.h>
int main()
{
char arr[100];
int i = 0;
int num = 0;
int word = 0;
gets_s(arr);
for (i = 0; arr[i] != ‘\0‘; i++)
{
if (arr[i] == ‘ ‘)
{
word = 0;
}
else if (word == 0)
{
word = 1;
num++;
}
}
printf("%d", num);
}
这可能涉及到编译器的版本问题,实在是我的知识盲区。
请各位路过的大神看一下??!我真的想不到问题出在哪儿了??呜呜呜
原文:https://www.cnblogs.com/Akizuki-Kanna/p/14799987.html