T611829 打印矩阵
打印特殊矩阵解题思路
解题思路
-
理解矩阵填充规律:
-
奇数行(第1、3、5...行)从左到右顺序填充数字
-
偶数行(第2、4、6...行)从右到左顺序填充数字
-
数字从1开始连续递增
-
-
实现步骤:
-
初始化计数器k=1
-
遍历每一行:
-
如果是奇数行,从左到右填充递增数字
-
如果是偶数行,从右到左填充递增数字
-
-
最后输出整个矩阵
-
代码注释
#include<bits/stdc++.h> using namespace std; int n; // 定义矩阵大小n int a[101][101]; // 定义足够大的矩阵(题目未给出n的范围,101是常见的安全大小) int main() { // 读取矩阵大小n cin >> n; int k = 1; // 初始化填充数字从1开始 // 填充矩阵 for(int i = 1; i <= n; i++) // 遍历每一行 { if(i % 2 == 1) // 如果是奇数行 { // 从左到右顺序填充 for(int j = 1; j <= n; j++) { a[i][j] = k; // 填充数字 k++; // 数字递增 } } if(i % 2 == 0) // 如果是偶数行 { // 从右到左顺序填充 for(int j = n; j >= 1; j--) { a[i][j] = k; // 填充数字 k++; // 数字递增 } } } // 输出矩阵 for(int i = 1; i <= n; i++) // 遍历每一行 { for(int j = 1; j <= n; j++) // 遍历每一列 { cout << a[i][j] << " "; // 输出元素加空格 } cout << endl; // 每行输出完后换行 } return 0; // 程序正常结束 }

浙公网安备 33010602011771号