我是一个正在尝试学习C的人,但是在做项目时我遇到了几个问题:
1)我究竟如何实现随机整数生成?我用Googled找到了0到x代的代码,下面是代码,但是我决定的2个整数之间怎么样(比如X和Y之间)?
int random;
random = random(100);
2)如何在开始时将变量设置为NULL(如在Java中)并在它为NULL时对其进行操作?例如,我想实现以下目标:
int a = null;
if (a == null){
a = 3;
}
答案 0 :(得分:9)
1) int r = random(Y - X)+ X;
2) C或Java中的整数不能为空。在C中,只有指针可以为null,通过将它们指向零来表示。但是,我建议你在掌握基础知识之前不要陷入整个指针混乱。
答案 1 :(得分:1)
1-我究竟如何实现随机整数生成[...]
请参阅FAQ 13.15和FAQ 13.16 - 后者明确回答了这个问题。
2-如何在开头
中设置变量null
对于浮点数和整数类型,您可以将它们分配给魔术值0.对于指针,您可以将它们分配给0(再次)或宏NULL
。
答案 2 :(得分:0)
获得所需的范围(y-x)乘以每个随机数乘以(y-x)。要使它们从x开始并在y处结束,将x添加到每个数字(已经乘以(y-z))。假设y> X
int i;
for (i = 0; i < NrOfNumers; i++)
{
randomNumberSequence[i] = randomNumberSequence[i]*(y-x) + x;
}
答案 3 :(得分:0)
在C中,您经常会看到以下内容:
int x = -1;
if (x == -1) { x = 3; } else { /* do nothing */ }
这假设值类型实际上是无符号的,或者至少-1不是有效值。你也可以这样做:
#define UNINITIALIZED ((int8_t) -128) /* -128 has no inverse with 8-bit */
...
int8_t x = UNINITIALIZED;
if (x == UNINITIALIZED) { x = 3; } else { /* do nothing */ }