本题如何用c++编写
时间: 2024-09-29 11:10:39 浏览: 31
在C++中,你可以使用嵌套的`for`循环来实现这个问题。这里是一个简单的示例代码片段:
```cpp
#include <iostream>
void printDiagonalPattern(int n, int m) {
for (int i = 1; i <= n; i++) {
// 对于每一行
for (int j = 1; j <= m; j++) {
if (i <= j) { // 之字形模式:当行数小于等于列数时
std::cout << i * m + j - 1 << " "; // 计算当前数字的位置
} else { // 当行数大于列数时,继续下一个序列
std::cout << i * m - (j - 1) << " ";
}
}
std::cout << "\n"; // 每行结束换行
}
}
int main() {
int n, m;
std::cin >> n >> m; // 从标准输入读取n和m
printDiagonalPattern(n, m);
return 0;
}
```
这段代码首先初始化两层循环,外部循环遍历行,内部循环遍历列。它检查行数是否小于等于列数来确定是否处于之字形的上半部分还是下半部分。计算出当前数字的位置后,将其输出到屏幕。`main`函数用于接收用户输入并调用`printDiagonalPattern`函数。
运行此代码后,会按照指定的n和m生成相应的矩阵并打印出来。
阅读全文