我有以下问题:
我创建了这个结构:
typedef struct Tree{
float pnt[2];
struct Tree *left;
struct Tree *right;
}Node;
我的目标是用随机点建立初始树(每个点dim = 2)。我们可以从main函数手动执行此操作:
Node n[] = {
{{2, 3}}, {{5, 4}}, {{9, 6}}, {{4, 7}}, {{8, 1}}, {{7, 2}}
};
但是,我想使用一个用随机点填充每个节点的循环来做到这一点。执行以下操作是否正确:
Node n;
int num_nodes = 6;
srand(time(NULL));
for (i = 0; i < num_nodes; ++i) {
n->pnt = (float) rand() / (float) RAND_MAX;
}
答案 0 :(得分:0)
不完全 - 因为node
是一个数组,pnt
是每个结构中两个点的数组,你需要做这样的事情:
const int num_nodes = 6;
Node n[num_nodes];
srand(time(NULL));
for (i = 0; i < num_nodes; ++i) {
n[i].pnt[0] = (float) rand() / (float) RAND_MAX;
n[i].pnt[1] = (float) rand() / (float) RAND_MAX;
}