运用c语言,帮帮我各位

哪里有错,我想输入一行字符用函数编程统计其中有多少单词。假设单词之间以空格分开

你的代码呢?统计单词的话,最好用两个字符来判断,当前一个字符是空格,并且当前字符是字母的时候,才开始统计个数
参考如下代码:
运行结果(输入3行字符测试):

img

代码

#include <stdio.h>


//判断字符是否是字母
int iszm(char c)
{
    if((c>='a' && c<='z') || (c>='A' && c<='Z'))
        return 1;
    else
        return 0;
}

int fun(char* s)
{
    int i=0;
    int cnt = 0;
    while(s[i]==' ') i++; //忽略字符前面的空格
    while(s[i])
    {
        if (iszm(s[i])) //当前为字母
        {
            if(i==0 ) //
                cnt++;
            else
            {
                if(s[i-1]==' ')
                    cnt++;
            }
        }
        i++;
    }
    return cnt;
}

int main()
{
    char buf[100];
    gets(buf);
    printf("%d:%s\n",fun(buf),buf);

    gets(buf);
    printf("%d:%s\n",fun(buf),buf);

    gets(buf);
    printf("%d:%s\n",fun(buf),buf);
    return 0;
    
}

#include<stdio.h>
#define M 1000
int main(void)
{
char a[M];
int n = 0, i,j;
gets(a);
for ( n = 0, i = 0, j = n + 1; a[i] != '\0'; i++, j++)//此n计数,清零
if ((a[i] != ' ' && a[j] == ' ')||(a[i] != ' ' && a[j] == '\0'))
n++;
//原理:两个(相邻)字符如果前一个字符不为空字符 后一个为空字符或者为'\0' 单词数+1
printf("%d\n", n);
return 0;
}