布尔函数错误

詹姆士

我是一名新的C开发人员(我习惯于用Java编程),并且尝试过创建我认为是简单bool功能的函数。尽管出现错误,但我不知道如何解决:

#include <stdio.h>
#include <stdlib.h>
typedef enum { false, true } bool;
int main() {
    int currentNumber, round = 1;
    printf("Numbers generated will be between 1 and 20. \n");
    currentNumber = rand() % 20;
    bool validNumber = false;
    do {
        if(currentNumber != 0) {
            validNumber == true;
        } else {
            currentNumber = rand() % 20;
        }
    }while(validNumber == false);
    printf("You're on round" + ("%d", round));
    printf("You're current number is: " + ("%d", currentNumber));
    printf("Higher or Lower (H/L)?");
    char userInput [20];
    scanf("%s", &userInput);
    if((userInput[0] == 'h') || (userInput[0] == 'H')) {
        completeRound(round, 'H', currentNumber);
    } else if((userInput[0] == 'l') || (userInput[0] == 'L')) {
        completeRound(round, 'L', currentNumber);
    }
}

void completeRound(int round, char input, int currentNumber) {
    int initialVal = currentNumber, newVal;
    if(input == 'H') {
        newVal = rand() % 20;
        bool checkResult(initialVal, newVal, input);
    } else {
        newVal = rand() % 20;
        bool checkResult(initialVal, newVal, input);
    }
}

bool checkResult(int initialVal, int finalVal, char input);
bool checkResult(int initialVal, int finalVal, char input) {
    if(input == 'H') {
        if(initialVal <= finalVal) {
            return true;
        } else {
            return false;
        }
    }
    if(input == 'L') {
        if(initialVal >= finalVal) {
            return true;
        }else {
            return false;
        }
    }
    printf("An error has occurred! Aborting game...");
    return false;
}

错误如下:

\ main.c | 39 |错误:“ checkResult”的类型冲突

起初,我认为由于某种原因,bool尽管我无法在Google上找到直接的答案,但是在C语言中,您只能将某些数据类型作为方法的参数来传递除此之外; 我不明白“冲突类型”的含义(这是我第一次调试C程序。

我曾经调用过的函数checkResult如下:

代莱

在调用该函数之前,您还需要编写其原型。默认情况下,编译器将其视为的返回类型,int但实际上是bool

所以请bool checkResult(int initialVal, int finalVal, char input)在打电话前写信checkResult

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章