C#正方形数字图案程序输出不符,求代码问题排查
代码问题分析
你的代码错误集中在内层循环的k值修正逻辑:
- 当前你使用固定减2的逻辑
k=k-2处理k超过行数的情况,仅能匹配少量场景,无法适配所有大于rows的k值计算。比如输入rows=3时,第三行第三列的初始k值为3+3-1=5,减2后得到3,和你期望的结果1不符。
修复方案
将k>rows时的修正逻辑替换为对称计算公式k = 2 * rows - k即可,修正后的完整代码如下:
using System; class Pattern{ static void Main() { int rows, i, j, k; Console.WriteLine("Enter the no. of rows: "); rows = int.Parse(Console.ReadLine()); for (i = 1; i <= rows; i++) { for (j = 1; j <= rows; j++) { k=i+j-1; if (k>rows){ k = 2 * rows - k; } Console.Write(k+ " "); } Console.WriteLine(); } } }
效果验证
修改后输入3时输出:
1 2 3 2 3 2 3 2 1
输入4时输出:
1 2 3 4 2 3 4 3 3 4 3 2 4 3 2 1
完全匹配你的预期。
内容的提问来源于stack exchange,提问作者PandaLuv
相关产品推荐
相关产品推荐

