[英]C++ Nested for loops
我正在编写一个修改csv文件中数据的程序。 在CSV文件中, 列安排如下..
X坐标,Y坐标,Z坐标,信息,X,Y,Z,信息,X,Y,Z信息..
第一个X坐标在第4列开始,下一个X坐标在第8列之后的4列 。 对于Y,它是第5列和第9列,依此类推。 由于我将数据保存到双端队列,因此第一个对应于x的data [row#] [3],而y将是data [row#] [5]。
for(int k=0; k<618; k++) { //all rows 618
for(int l=3; l<96; l=l+4) { //x columns
for(int m=4; m<97; m=m+4) { //y columns
data[k][l] = (data[k][l] )*(data[k][2]) + (data[k][m])*(data[k][1]);
在循环中的计算中,我希望它用从此等式中获得的值替换列(k)中的所有x值(l)(正如我为循环创建的那样)
x' = x* cos(theta) + y* sin(theta)
在所有行(因此,data [k] [2]和data [k] [1])的第2列和第3列中都找到了cos(θ)和sin(theta)的值。
不幸的是,在用几个cout语句进行测试时,我注意到它并没有达到预期的效果。
所需的循环行为:
第一次循环:对第1行进行计算,x =第4列内的值,y =第5列中的值
*循环迭代结束,重新启动,k,l和m更新为2,9,10。
对这些新值执行循环中的计算,依此类推。
主要问题是在data [k] [l]行之后,k,l,m并没有全部按需更新,这可能是什么引起的? 谢谢。
您不了解嵌套循环。
您打算做的是这样的:
for(int k=0; k<618; k++) { //all rows 618
for(int n=0; n<24; ++n) { //groups
l = 4*n + 3;
m = 4*n + 4
data[k][l] = (data[k][l] )*(data[k][2]) + (data[k][m])*(data[k][1]);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.