繁体   English   中英

C ++嵌套循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM