大批:
float v[] = {
0.5, 0,5, 0.0,
1.0, 0.5, 0.0,
0.5, 0.5, 0.0,
-0.5, 0.5, 0.0,
1.0, 0.5, 0.0,
0.5, 0.5, 1.0,
0.5, 0.5, 1.0}
您需要使用从零开始的整数索引数组中的每组三个数字,并将索引写入另一个数组,即 前三个数字将始终为 0。
例如:0.5、0.5、0.0 - 索引零,
1.0, 0.5, 0.0 - 索引 1,
0.5, 0.5, 0.0 - 零索引(因为组已经满足),
-0.5, 0.5, 0.0 - 索引 2,
1.0, 0.5, 0.0 - 索引 1,
0.5、0.5、1.0 - 索引 3 等
结果,新数组应如下所示: int v2[] = {0, 1, 0, 2, 1, 3, 3}
在我看来任务很简单,如果你用你的大脑思考
这是代码:
结果:
该算法基于这样一个事实:如果 arr1 数组中的一个元素被指定为 -1,那么它没有索引,我们在第二个循环中给它一个索引。j 不是从 0 开始的。因为后面的所有元素都已编入索引。arr1 数组中的第 1 个元素是 arr0 数组中 3 个元素的公共索引。我希望这很清楚。