给定一个正整数n,输出 n *n “之字形”方阵如下。(C++的) 1 2 6 7 3 5 8 13 4 9 12 14 10 11 15 16
时间: 2024-10-19 19:13:57 浏览: 26
在 C++ 中,你可以使用嵌套循环和字符串连接的方式来生成 "之字形" 方阵。下面是一个简单的函数实现示例:
```cpp
#include <iostream>
#include <string>
std::string zigzag(int n) {
std::string arr[n][n];
int start = 1;
int direction = 1;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
arr[i][j] = std::to_string(start);
start += direction * (i + 1); // 更新数字
if (start > n || start <= 0) { // 判断是否超出范围,改变方向
direction *= -1;
start += direction; // 跳过已添加的数值
}
}
}
// 连接所有行形成字符串
std::string result;
for (const auto& row : arr) {
for (char num : row) {
result += num + " ";
}
result += "\n";
}
return result;
}
int main() {
int n = 4;
std::cout << zigzag(n) << std::endl;
return 0;
}
```
这个程序会打印出指定大小的 "之字形" 数字方阵。当你运行它时,将 `n` 设置为你想要的值即可。
阅读全文