我在大学学习C,但我不理解教授写的这段代码,也没有解释(我知道它会向下一个数组元素添加一个从0到99的随机数,但不知道如何)
srandom(time(NULL));
for(i = 0; i < n; i++)
a[i] = i == 0 ? random() % 100 : a[i-1] + random() % 100;
Run Code Online (Sandbox Code Playgroud)
尽管它可以按预期工作,但我只想了解它如何在不带“ + =”或类似内容的情况下将数字添加到下一个数组元素。
您可以这样重写它:
for(i=0;i<n;i++) {
if (i == 0) {
a[i] = random()%100;
} else {
a[i] = a[i-1] + random()%100;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,您看到at的a[1]值为a[0] + random()%100,依此类推。该if是必要的,因为当i是0,你没有以前的值,使用(a[-1]将是一个错误)。三元运算符condition ? a : b可以理解为“如果条件为真,则为a;否则为b”。
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |