样例输入4 5样例输出20252025202520252025代码如下#include stdio.h#include string.hvoid draw2025(int i,int w){const char base[] 2025;int baselen strlen(base);for(int j 0;j w;j){printf(%c,base[(ij) % baselen]);}printf(\n);}int main(){int h,w;scanf(%d %d,h,w);for(int i0;i h;i){draw2025(i,w);}return 0;} 核心部件draw2025函数印刷机器这个函数的任务很简单只负责打印一行然后换行。参数含义i代表行号。机器需要知道现在是第几行才能决定从 2025 的哪个字开始印实现错位效果。w代表宽度。这一行要印多少个字符。核心算法(i j) % baselen这是整段代码的灵魂用来解决“循环”和“错位”两个问题。base是 2025长度baselen是 4。i是行号j是列号。取模运算%就像钟表一样数到 4 就回到 0。当i0第1行索引是 0,1,2,3,0,1...0,1,2,3,0,1... → 输出202520...当i1第2行索引是 1,2,3,0,1,2...1,2,3,0,1,2... → 输出025202...自动实现了向左移动一位的效果 主控中心main 函数车间主任流程解析接收输入比如输入5 10高5宽10。循环调用第一次循环i0调用draw2025(0, 10)→ 机器打印第 1 行。第二次循环i1调用draw2025(1, 10)→ 机器打印第 2 行自动错位。...以此类推直到打印完第 5 行。 举例演示假设输入h2, w5第 1 轮循环i0调用draw2025(0, 5)。内部循环j 从 0 到 4。索引计算 (0 0) % 4 0(0 0) % 4 0 ( 2 ), (0 1) % 4 1(0 1) % 4 1 ( 0 )...输出20252然后换行。第 2 轮循环i1调用draw2025(1, 5)。内部循环j 从 0 到 4。索引计算 (1 0) % 4 1(1 0) % 4 1 ( 0 ), (1 1) % 4 2 (1 1) % 4 2 (2)...输出02520然后换行。