统计句子中单词个数,这个错在哪里了


#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,number;
    char str[15],m='0';
for(i=0;i<15;i++)
    scanf("%c",&str[i]);    
    for(i=0;i<15;i++)
        printf("%c",str[i]);
    number=Num(str,0);    
    printf("有%d个单词\n",number);    
    return 0;
}

char Num(char str[i],char m)
{
    int  i,c,flag=0;
    num=0;
    for(i=0;c=str[i]!='0';i++)
    if(c==' ')
    flag=0;
    else if(flag==0){
        flag=1;
        num++;    
    }
    return num;
}

  1. 函数char Num(char str[i],char m)放在main函数的后面的话,需要在main函数的前面进行声明。
  2. 函数NUM的第一个参数去掉[i]中的i,修改为char str[]
  3. 修改完2之后,需要在函数Num中定义变量 i。
  4. 第21行不建议此种写法,容易坑人坑自己,可参考下面的代码。
  5. 下面的代码只作为参考。
    ```c

#include <stdio.h>
#include <stdlib.h>

char Num(char str[],char m) // 1
{
int i,c,flag=0;
int num=0; // 2
for(i=0;str[i]!='\0';i++) // 3
{
if(str[i]==' ') //flag=0;
//else if(flag == 0)
{
flag=1;
num++;
}
}
return num;
}

int main()
{
int i,number;
char str[15],m='0';
for(i=0;i<15;i++)
scanf("%c",&str[i]);
for(i=0;i<15;i++)
printf("%c",str[i]);
number=Num(str,0);
printf("有%d个单词\n",number);
return 0;
}