这种情况:我编写了一个程序,给定两个数组df <- tbl(conn, in_schema("schema", "table")) %>%
filter(status!= "CLOSED" | is.na(status)) %>%
group_by(customer_id) %>%
filter(created == min(created, na.rm = T)) %>%
ungroup() %>%
select(
contract_number,
customer_id,
approved_date = created
) %>%
collect()
和r
来计算坐标phi
并以这种方式在文件上打印出来:
x,y,z
现在我需要将坐标视为数组 for(int i=0; i< sizeof(r)/sizeof(r[0]); i++){
for(int j=0;j< sizeof(phi)/sizeof(phi[0]);j++){
z=atan(theta)*r[i]*cos(phi[j]);
y=r[i]*sin(phi[j]);
x=r[i]*cos(phi[j]);
fprintf(file,"%g \t %g \t %g\n", x,y,z)}}
,但是我找不到用当前程序填充数组的方法。问题是我找不到合适的方法来迭代坐标的索引:例如,如果考虑索引x[],y[],z[]
,我将在{{的第一次迭代中)获得i*j
j次1}}等。
有人可以帮忙吗?
答案 0 :(得分:3)
为结果数组创建一个单独的计数器,并在内部循环的每次迭代中将其递增。
int k = 0;
for(int i=0; i< sizeof(r)/sizeof(r[0]); i++){
for(int j=0;j< sizeof(phi)/sizeof(phi[0]);j++){
z[k]=atan(theta)*r[i]*cos(phi[j]);
y[k]=r[i]*sin(phi[j]);
x[k]=r[i]*cos(phi[j]);
fprintf(file,"%g \t %g \t %g\n", x[k],y[k],z[k])
k++;
}
}