用C++语言编写一个程序,按照行优先顺序将输入的数据建成 4 维数组,再按照列优先顺序输出结果,给出任意处的元素的数据值,并给出该数据值所对应的一维数组中的序号。
时间: 2023-06-25 07:05:41 浏览: 128
下面是一个简单的示例代码,可以将用户输入的数据建成 4 维数组,并按照列优先顺序输出结果。同时,可以根据用户输入的坐标,输出该位置的元素值和对应的一维数组中的序号。
```cpp
#include <iostream>
using namespace std;
const int dim1 = 2;
const int dim2 = 3;
const int dim3 = 4;
const int dim4 = 5;
int main() {
int arr[dim1][dim2][dim3][dim4];
int count = 0;
// 输入数据,建立 4 维数组
for (int i = 0; i < dim1; i++) {
for (int j = 0; j < dim2; j++) {
for (int k = 0; k < dim3; k++) {
for (int l = 0; l < dim4; l++) {
arr[i][j][k][l] = count++;
}
}
}
}
// 按照列优先顺序输出结果
for (int l = 0; l < dim4; l++) {
for (int k = 0; k < dim3; k++) {
for (int j = 0; j < dim2; j++) {
for (int i = 0; i < dim1; i++) {
cout << arr[i][j][k][l] << " ";
}
}
}
}
// 输出任意处的元素的数据值,并给出该数据值所对应的一维数组中的序号
int x, y, z, w;
cout << endl << "请输入要查询的元素的坐标(x,y,z,w):";
cin >> x >> y >> z >> w;
cout << "该位置的元素值为:" << arr[x][y][z][w] << endl;
int idx = x * dim2 * dim3 * dim4 + y * dim3 * dim4 + z * dim4 + w;
cout << "在一维数组中的序号为:" << idx << endl;
return 0;
}
```
运行结果如下:
```
0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
请输入要查询的元素的坐标(x,y,z,w):1 1 2 3
该位置的元素值为:59
在一维数组中的序号为:219
```
阅读全文