1
4

3 回答 3

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;
    }
于 2013-09-06T14:55:49.813 回答
2

在编译器遇到函数的使用时,它需要知道函数的存在。

在您的代码中,当编译器(读取您的源文件)遇到comp = computerPlay();时,它没有看到任何告诉它该函数存在的信息。它猜测函数是什么,并且猜测int computerPlay(void)- 默认情况下,C 将始终假定函数返回int。然后它稍后会遇到实际定义,这与它已经做出的猜测相冲突——函数返回char,而不是int

解决方案是让编译器在使用之前知道该函数的存在。您可以:

  • 将整个函数定义移到上面main
  • static char computerPlay(void);在上面放一个声明main,表明它只适用于这个源文件
  • 将声明char computerPlay(void);放入单独的头文件和#include上面的文件中main,从而使该函数可用于其他源文件(给出超出此问题范围的其他步骤)
于 2013-09-06T15:02:56.163 回答
1

您正在使用两个功能之一是

char computerPlay()和第二个是

int printScore(int p, int c, int t)这两个首先必须在 include 语句下面声明。

因此,只需在 include 语句下方进行以下语句。

字符计算机播放();

int printScore(int, int, int);

第二件事你也在使用int main()所以最后你必须返回整数,所以你还必须在主返回 0或任何其他整数的末尾添加以下语句。

于 2013-09-06T15:17:52.967 回答