我在大学学习 C,我不明白我的教授写的这段代码,它没有解释(我知道它将一个从 0 到 99 的随机数添加到下一个数组元素,但不知道如何)
srandom(time(NULL));
for(i = 0; i < n; i++)
a[i] = i == 0 ? random() % 100 : a[i-1] + random() % 100;
虽然它按预期工作,但我只是想了解它如何在没有“+=”或类似内容的情况下将数字添加到下一个数组元素。
最佳答案
你可以这样重写:
for(i=0;i<n;i++) {
if (i == 0) {
a[i] = random()%100;
} else {
a[i] = a[i-1] + random()%100;
}
}
因此,您会看到 a[1]
处的值是 a[0] + random()%100
等等。需要 if
是因为当 i
为 0 时,您没有以前的值可供使用(a[-1]
将是一个错误)。三元运算符 条件 ? a : b
可以理解为“如果条件为真,则 a;否则 b”。
关于c - 需要解释一下这段代码是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55417773/