3 回答
你没有声明函数 computerPlay()
声明此函数后检查。
char computerPlay(void);
在后面加上这个语句#include<stdio.h>
编辑:
C 中的所有标识符都需要在使用之前声明。对于函数和变量都是如此。对于函数,声明需要在函数的第一次调用之前。完整的声明包括返回类型以及参数的数量和类型
简单的例子:
int sum (int, int); // declared a function with the name sum
result =sum(10,20); // function call
int sum (int a, int b) // defined a function called sum
{
return a + b;
}
在编译器遇到函数的使用时,它需要知道函数的存在。
在您的代码中,当编译器(读取您的源文件)遇到comp = computerPlay();
时,它没有看到任何告诉它该函数存在的信息。它猜测函数是什么,并且猜测int computerPlay(void)
- 默认情况下,C 将始终假定函数返回int
。然后它稍后会遇到实际定义,这与它已经做出的猜测相冲突——函数返回char
,而不是int
。
解决方案是让编译器在使用之前知道该函数的存在。您可以:
- 将整个函数定义移到上面
main
static char computerPlay(void);
在上面放一个声明main
,表明它只适用于这个源文件- 将声明
char computerPlay(void);
放入单独的头文件和#include
上面的文件中main
,从而使该函数可用于其他源文件(给出超出此问题范围的其他步骤)
您正在使用两个功能之一是
char computerPlay()和第二个是
int printScore(int p, int c, int t)这两个首先必须在 include 语句下面声明。
因此,只需在 include 语句下方进行以下语句。
字符计算机播放();
int printScore(int, int, int);
第二件事你也在使用int main()所以最后你必须返回整数,所以你还必须在主返回 0或任何其他整数的末尾添加以下语句。