原谅我在描述问题时的任何不足之处,但这是我在这里的第一天。所以我的程序不会编译。它会继续踢出“对'isOdd'和'IsEven'的未定义引用,而且ld返回1退出状态。似乎无法找出导致错误的原因。它是一个随机数生成器,试图使用bool判断一组随机数整数都是偶数,或者其中之一是奇数。
#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;
}
}
}
答案 0 :(得分:1)
修复缩进后,可以看到您定义了嵌套在main
函数中的那些函数。
C标准不允许这样做。 某些编译器的某些扩展名才允许这样做。
您必须在文件范围内定义所有功能,而不是在另一个功能内。