如何用C++程序实现数组的奇偶行列元素的提取呢?

来源:百度知道 编辑:UC知道 时间:2024/05/31 04:19:04
比如说一个三维数组【i,j,vol】,i=5, j=2,vol=3
vol=1时,二维数组为x坐标
1 2 3 4 5(i)
1 x11 x12 。。。 x15

2 x21 x22 。。。 x25
(j)
vol=2时,对应的为y坐标,形式如上
vol=3时,对应的为函数值,形式相同
现在要抽取奇数行奇数列的元素存到一个新的数组里
这个例子比较简单,抽离出来就是:x11,x12,x13,x15,y11,y12,y13,y15,f11,f12,f13,f15,
但是i=43,j=21的时候呢?
给定了数组,在一个txt文档里,如上例就是:
title = "t = 43.5"
variables = "x", "y", "Vorticity of v and u"
zone t="B-26 L-0 P-0", f=block
5.1 5.2 5.3 5.4 5.5
5.1 5.2 5.3 5.4 5.5
1.9 1.9 1.9 1.9 1.9
2 2 2 2 2
0.00245142 0.0182496 -0.0163203 -0.10446 -0.174885
-0.0133143 -0.0644904 -0.0527515 -0.0492498 -0.135204
这样的形式,
i和j比较大的时候就需要通过一个C++的程序来实现数组的抽取,然后存到另一个txt文档里
各位大侠,帮帮忙!
不好意思,多写了一个x12,y12,f12

1、有一点看不明白,楼主“现在要抽取奇数行奇数列的元素存到一个新的数组里”,怎么结果是“x11,x12,x13,x15,y11,y12,y13,y15,f11,f12,f13,f15”?而不是“x11,x13,x15,y11,y13,y15,f11,f13,f15”。
2、如果按照输出是“x11,x13,x15,y11,y13,y15,f11,f13,f15”的理解,那么下面的代码段可以完成你的要求(结果输出到标准输出上):
int iRow = 0; // 行号
int m,n,k;
for(m = 0; m < vol; m++) // 第三维
{
for(n = 0; n < j; n++) // 第二维
{
if (iRow % 2 == 0) // 当行号为奇数时,进行处理
{
for(k = 0; k < i; k++) // 第一维
{
if (k % 2 == 0) // 当列号为奇数时,输出结果
{
cout << " " << array[m][n][k]; // 输出数组元素
}
}
cout << endl;
}
iRow++;
}
}