我正在尝试创建一个随机数生成器,并使用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;
}
}
答案 0 :(得分:0)
您仅在功能prmpt
中检查一个数字。您需要检查两个数字。
var prmpt = prompt("Enter your fav number, 1-50");
for (i = 1; i <= 50; i++) {
if (i === parseInt(prmpt)) {
console.log("Yikes, get this " + prmpt + " number outta here!");
continue;
}
console.log(i);
}
或者,您可以同时检查两者,并使代码更简洁。
isOdd
答案 1 :(得分:0)
我了解您的问题。 您要求将其与两个数字区分开来,这是对的。 布尔的主要目的是表示1或0,为什么使用char由8位组成。 如果您想检查1个数字,请使用bool数据类型。 否则,如果您想知道所有可能结果的两个,最好使用char数据类型。
这里有两个数字。4种可能性。
number 1 number 2
1 odd even
2 even odd
3 even even
4 odd od
if ((num1 % 2 != 0) && (num2 % 2 == 0)) {
return 1;
}
else if ((num1 % 2 == 0) && (num2 % 2 != 0)) {
return 2;
}
else if ((num1 % 2 == 0) && (num2 % 2 == 0)) {
return 3;
}
else {
return 4;
}