【发布时间】:2019-05-01 03:09:13
【问题描述】:
我试图创建一个随机数生成器并使用 srand 调用和布尔值判断随机整数奇数或偶数,但我不知道如何让它正确区分奇数和偶数。
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <time.h>
int i;
int num1;
int num2;
bool isOdd (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 valueIsOdd = isOdd(num1, num2);
if (valueIsOdd) {
printf("one of these numbers, %u and %u, isOdd.\n\n", num1, num2);
}
else {
printf("Both of these numbers, %u and %u, are even.\n\n", num1, num2);
}
}
}
bool isOdd(int num1, int num2)
{
if (num1 % 2 != 0) {
return true;
}
else {
return false;
}
}
【问题讨论】:
-
你的程序会发生什么?对于一些示例数字,预期输出是多少,实际输出是多少?请花一些时间阅读有关 how to ask good questions 和 this question checklist 的信息。
-
您的打印没有明确涵盖两个数字都是奇数的情况。你可以说“这些数字中至少有一个是奇数”。或者换一种方式处理。
-
请注意,您的 printf 语句似乎无法处理两个数字都是奇数的情况。
-
当只有一个会被检查时,为什么要将两个数字传递给
isOdd()?