cpp将二维数组的一个数赋值给一维数组的一个索引下
时间: 2024-10-25 10:14:12 浏览: 20
详解C++中的一维数组和二维数组
5星 · 资源好评率100%
在C++中,从二维数组提取并赋值给一维数组时,我们需要明确两个数组的尺寸匹配。假设有一个3x4的二维数组`matrix`和一个长度为12的一维数组`oneDimArray`,我们可以按照行优先的方式将主对角线的元素复制到一维数组:
```cpp
#include <iostream>
#include <cstdlib> // 用于生成随机数
int main() {
const int rows = 3;
const int cols = 4;
int matrix[rows][cols]; // 定义二维数组
int oneDimArray[rows * cols]; // 一维数组,大小等于二维数组的元素总数
// 生成并赋值二维数组的随机数
for (int i = 0; i < rows; ++i)
for (int j = 0; j < cols; ++j)
matrix[i][j] = rand(); // 假设rand()返回0到RAND_MAX之间的随机数
// 提取主对角线元素并赋值给一维数组
int index = 0;
for (int i = 0; i < rows; ++i) {
oneDimArray[index] = matrix[i][i];
index++;
}
std::cout << "Original 2D array:\n";
for (int i = 0; i < rows; ++i)
for (int j = 0; j < cols; ++j)
std::cout << matrix[i][j] << " ";
std::cout << "\nExtracted diagonal in 1D array:\n";
for (int i : oneDimArray)
std::cout << i << " ";
return 0;
}
```
这段代码展示了如何通过遍历二维数组的主对角线元素并将它们逐个复制到一维数组中。注意,这里假设了一维数组的大小足够存放整个主对角线。
阅读全文