布尔数据类型随机整数

时间:2018-11-29 05:37:06

标签: c random boolean

我正在尝试创建一个随机数生成器,并使用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;
    }

}

2 个答案:

答案 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;
        }