我想打印这个: -
1
121
12321
1234321
123454321
此程序打印此内容。程序中的错误可能是什么?在for循环中?请告诉我如何解决这个问题。我正在使用的逻辑中的错误是什么。如果是这样,我的逻辑中出现了什么问题?在不久的将来,我应该如何考虑算法呢? : -
1
12
123
123432
123454321
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int a, b, c, d, e;
b = 6;
for(a=b;a>=1;a--)
{
for (c = a; c >=1; c--)
{
Console.Write(" ");
}
for(d=1; d<=b-a;d++)
{
Console.Write(d);
}
for (e = b-a-1; e>=a; e--)
{
Console.Write(e);
}
Console.WriteLine();
}
}
}
}
请告诉我代码中的问题。
答案 0 :(得分:5)
问题出在for (e = b-a-1; e>=a; e--)
将其更改为for (e = b-a-1; e>=1; e--)
答案 1 :(得分:3)
课程计划
{
static void Main(string [] args)
{
int a = 1, b, s = 1, n = 5;
for (; a <= n; s = s * 10 + 1)
{
for (b = n - a; b >= 1; b--)
{
Console.Write(" ");
}
Console.Write(s * s);
Console.WriteLine();
a++;
}
}
}
希望这有帮助。
答案 2 :(得分:1)
@chouaib对于问题在代码中的位置绝对正确。
但是,我们需要处理您的代码及其编写方式。
首先是你的变量名。 a
,b
,c
,d
和e
毫无意义。从查看和阅读此代码,我无法弄清楚它将做什么。您希望阅读它的人能够轻松理解您的代码。
使用具有意义的变量名称。对于这样的问题,我可能会使用row
和column
,具体取决于我解决问题的方法。
这让我想到了接下来要考虑的事情,如何解决这个问题。 您实际上有一个表,您正在使用行和列写入值。所以一个好的开始就是遍历每一行的列。像
这样的东西int totalNumberOfRows = 5;
int totalNumberOfColumns = 9;
// Iterate over each row
for (int row = 0; row < totalNumberOfRows; row++)
{
// Iterate over each column of each row
for (int column = 0; column < totalNumberOfColumns; column++)
{
// Do something
}
}
接下来,简化一下问题。让我们忽略空白,使它变成一个漂亮的金字塔。试试打印
1
121
12321
etc...
一旦你实现了那个,那么你几乎就在那里。 如果你看一个问题并且无法解决问题,可以尝试将其分解为更小,更容易的问题。
当您编写代码时,请考虑让其他人轻松阅读和理解。代码需要是可维护和可扩展的,这意味着当有人需要处理代码来添加代码或修复错误时,他们不希望花费数小时阅读它来理解它。