先上代码
#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>
double _COUNT_LETTERS_AND_WOEDS(void);
int main(void)
{
printf("%5f \n",_COUNT_LETTERS_AND_WORDS());
return 0;
}
double _COUNT_LETTERS_AND_WORDS(void)
{
char ch;
double words = 0;
double letters = 0;
bool inword = false;
while((ch = getchar()) != EOF)
{
if((!isspace(ch) && !inword) && !ispunct(ch))
{
words++;
inword = true;
}
if((isspace(ch) && inword) && ispunct(ch))
inword = false;
if(!isspace(ch) && !ispunct(ch))
letters++;
}
return letters/words;
}
这是一个计算字符与单词的程序 函数返回每个单词的平均字符数。
我不太明白那个报错函数类型冲突是为什么?还有函数的隐式声明?
第四行 , 把 double _COUNT_LETTERS_AND_WOEDS(void); 改成 double _COUNT_LETTERS_AND_WORDS (void);
这里是你打错了, WORDS 打成了 WOEDS;
再把定义里的(第12行)括号里的 void 删掉。
这部分有些编译器会报错,提示你参数出错。
以上
_COUNT_LETTERS_AND_WO E DS
E -》R
调用的函数的声明错误了,导致主函数调用的时候调用的是另一个函数,但是这个函数又没有定义
第四行函数声明和后面的函数调用不是一个函数,调用的函数没有被声明