面试题答案
一键面试#include <iostream>
int main() {
int rows, cols;
std::cout << "请输入行数: ";
std::cin >> rows;
std::cout << "请输入列数: ";
std::cin >> cols;
// 动态分配二维数组
int** arr = new int*[rows];
for (int i = 0; i < rows; ++i) {
arr[i] = new int[cols];
}
// 给数组元素赋值
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
arr[i][j] = i + j;
}
}
// 输出二维数组
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}
// 释放内存
for (int i = 0; i < rows; ++i) {
delete[] arr[i];
}
delete[] arr;
return 0;
}
rows = int(input("请输入行数: "))
cols = int(input("请输入列数: "))
# 动态分配二维数组并赋值
arr = [[i + j for j in range(cols)] for i in range(rows)]
# 输出二维数组
for row in arr:
for num in row:
print(num, end=" ")
print()
在C++ 代码中:
- 首先通过
new
关键字动态分配二维数组。 - 接着通过嵌套循环给每个元素赋值为行号和列号之和。
- 再通过嵌套循环输出二维数组。
- 最后使用
delete[]
正确释放分配的内存,避免内存泄漏。
在Python代码中:
- 使用列表推导式动态生成二维数组并同时赋值。
- 同样通过嵌套循环输出二维数组。由于Python有自动垃圾回收机制,无需手动释放内存。