C 逻辑位和(或)等于最大无符号短值的随机数

标签 c random bit

<分区>

任务是编写一个程序,计算使它们的位逻辑和(a1 或 a2 或 a3 ...)等于 111..1 所需的无符号短整型的平均数量。我真的很感激任何形式的帮助。编辑:像那样改编并且循环仍然没有退出。

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

int main(){

int count=0;
unsigned short sum = 0;
unsigned short USHRT_MAX = 65535;

while(sum != USHRT_MAX ){
    unsigned short r = (unsigned short)rand()%USHRT_MAX;
    sum = sum | r;
    count++;
}
printf("the answer is : %d numbers\n", count);
return 0;

最佳答案

sum=255 是一个非比较运算符的赋值。除此之外,只要 sum 不等于 USHRT_MAX,您就想继续。如果在没有任何条件的情况下将return指令写入循环,循环将直接终止。 要获得不同的数字,您必须在循环中调用 rand。函数 rand 返回类型为 int 的值。像这样调整您的代码:

int main(){

    int count=0;
    unsigned short sum = 0;
    while(sum != USHRT_MAX){
        unsigned short r = (unsigned short)rand();
        sum = sum | r;
        count++;
    }
    printf("the answer is : %d numbers\n", count);
    return 0;
}

关于C 逻辑位和(或)等于最大无符号短值的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34641358/

相关文章:

c - C如何知道函数中二维动态数组的维度?

java - 如何获得范围内为负数的随机数?

c++ - 为什么我的 mt19937 随机生成器给我的结果很荒谬? C++

c++ - std::vector <bool>的单比特上的按位运算。为什么会出错?

在返回 Go Runtime 之前,Cgo 在 x_cgo_notify_runtime_init_done 中被阻塞

python - 我从哪里开始学习对机器人进行编程?

c - 为什么我的 scanf 语句不起作用?

r - 生成具有固定均值和标准差的随机数

C 编程设置 Unsigned Char 数组中的位

java - 累积位运算