C 对我的某些函数的未定义引用

C 对我的某些函数的未定义引用,c,random,boolean,C,Random,Boolean,请原谅我在描述我的问题时的任何缺点,但这是我来这里的第一天。所以我的程序无法编译。它不断踢出“对'isOdd'和'IsEven'的未定义引用”,同时ld返回1退出状态。似乎无法找出导致错误的原因。它是一个随机数生成器,试图使用布尔值来判断一组随机整数是偶数还是奇数 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <time.h> bool isOdd (in

请原谅我在描述我的问题时的任何缺点,但这是我来这里的第一天。所以我的程序无法编译。它不断踢出“对'isOdd'和'IsEven'的未定义引用”,同时ld返回1退出状态。似乎无法找出导致错误的原因。它是一个随机数生成器,试图使用布尔值来判断一组随机整数是偶数还是奇数

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

bool isOdd (int num1, int num2);
bool isEven (int num1, int num2);
void valueForOdd (int num1, int num2);
void valueForBothEven (int num1, int num2);

    int i;
    int num1;
    int num2;

 int main(void)
{



 srand(time(NULL));


for (i=1; i <= 10; ++i) {
    num1 = rand() % 10 + 1;
    num2 = rand() % 10 + 1;
    printf("The two random numbers are %u and %u\n", num1, num2);
}

bool valueForOdd = isOdd (num1, num2);

    if (valueForOdd) {
        printf("one of these numbers, %u and %u, isOdd.\n\n", num1, num2);
    }
    else {
        printf("\n");
        }
bool isOdd (int num1, int num2)
{
    if ((num1 % 2 != 0) || (num2 % 2 != 0)) {
        return true;
    }
    else {
        return false;
        }
}


bool valueForBothEven = isEven (num1, num2);

    if (valueForBothEven) {
        printf("Both of these numbers, %u and %u, are even.\n\n", num1, 
num2);
    }
    else {
        printf("\n");
    }

bool isEven (int num1, int num2)
{
    if ((num1 % 2 == 0) && (num2 % 2 == 0)) {
        return true;
    }
    else {
        return false;
    }
  }

}
#包括
#包括
#包括
#包括
bool-isOdd(整数m1,整数m2);
布尔伊塞文(整数m1,整数m2);
奇数的无效值(整数m1,整数m2);
两者的无效值(整数m1,整数m2);
int i;
int num1;
int num2;
内部主(空)
{
srand(时间(空));

对于(i=1;i在修复缩进后,可以看到您定义了嵌套在
main
函数中的那些函数

这是C标准所不允许的。 只有某些编译器的某些扩展允许这样做


您必须在文件范围内定义所有函数,而不是在另一个函数中定义。

请学习正确缩进代码道歉,这是我大一的第一个学期。学习正确缩进代码需要5分钟。只需查看教科书和课程材料中的示例并遵循它们的风格。或者找一个能够自动完成此操作的编辑器对于初学者来说,正确的缩进更为重要。